JSFiddle - React, Tailwind, and code Playground

by Casufi

HTML

<button id="sortarr" type="button">Сортировка</button>

JavaScript

var sortCols = function(elem1, elem2){
  if (elem1 && elem1.colls) elem1.colls.sort(sortCols);
  if (elem2 && isNaN(elem2.sort*1)) return 1;
  if (elem1 && isNaN(elem1.sort*1)) return -1;
  if (elem1.sort > elem2.sort) return 1;  
  return -1;  
}

var subcol2 = [
    {name:"Семь", sort:7},
    {name:"Девять", sort:9},
    {name:"Два", sort:2},
];

var subcol = [
    {name:"Три", sort:3, colls: subcol2},
    {name:"Один", sort:1},
    {name:"Два", sort:2},
];
var cols = [
    {name:"Четрые", sort:4},
    {name:"Три", sort:3, colls: subcol},
    {name:"Семь", sort:7},
    {name:"Шесть", sort:6},
    {name:"Пять", sort:5, colls: subcol2},
    {name:"Один", sort:1},
    
];

$('#sortarr').on('click',function(e){
    console.log(cols);
    cols.sort(sortCols);
    console.log(cols);
});