繁体   English   中英

如何使用javascript / jquery对嵌套数组对象的顺序进行排序

[英]How to sort the order of the nested array object using javascript/jquery

有一个嵌套的数组对象,请尝试根据对象中存在的顺序值对其进行排序。

因此,将对象拆分并将其推入两个新的数组变量中。 但是在我的对象响应之一中,有一个数组,我需要按升序对值进行排序。 这是我尝试过的。

JS:

var obj = {details:[{type:"general",order:1,},{type:"general1",order:3,},{type:"static",order:4,list:[{type:"static2",order:3,},{type:"static1",order:2,},]},{type:"general2",order:2,}]};

var basicArray = [];
var listArray = [];
var sortedArray = "";
var sortedListArray = "";
var checkListArray = [];

var objDetails = obj.details;
sortedArray = _.sortBy(objDetails,"order");

for(var i=0;i<sortedArray.length;i++){
    if(sortedArray[i].list){
        listArray.push(sortedArray[i]);
    }
    else{
        basicArray.push(sortedArray[i]);
    }
}

for(var j=0;j<listArray.length;j++){
    if(listArray[j].list){
        for(var k=0;k<listArray[j].list.length;k++){
            sortedListArray = _.sortBy(listArray[k].list,"order");
            checkListArray.push(listArray[k].list);
        }
    }
}

演示网址

所以预期的输出在第二个循环中,我想对数组的值进行排序,就像在第一个循环中一样

在列表上使用sortBy:

for(var i=0;i<sortedArray.length;i++){
    if(sortedArray[i].list){
        sortedArray[i].list =_.sortBy(sortedArray[i].list,"order");
        checkListArray.push(sortedArray[i].list);    // add sorted list to checklist
        basicArray.push(sortedArray[i]);     // add element with sorted list to basic array
    }
    else{
        basicArray.push(sortedArray[i]);
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM