How To sort an array of nested objects in javascript

后端 未结 2 718
抹茶落季
抹茶落季 2021-01-16 06:40

I have an array like this

var array = [{
    order: 3,
    sub - array: [{
        order: 2
    },{
        order: 1
    }]
},{
    order: 2,
    sub - array         


        
2条回答
  •  南笙
    南笙 (楼主)
    2021-01-16 06:52

    var propertySort = function(a, b){
        return a.order > b.order ? 1 : (a.order < b.order ? -1 : 0);
        }
    
    var reorder = function(arr){
        var l = arr.length;
        while (l--){
            if (arr[l]['sub-array']){
                reorder(arr[l]['sub-array']);
            }
        }
    arr.sort(propertySort);
    };
    
    reorder(arr);
    
    console.log(arr);
    

    This should re-order the array for any number of nested levels.

提交回复
热议问题