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);
});