2015-08-29 99 views
0

嵌套数组对象,试图根据对象中存在的顺序值对其进行排序。如何使用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); 
     } 
    } 
} 

Demo URL

所以预期输出是我的第二个循环中,我要为了我的数组的值,就像我在我的第一个循环

回答

1

用做按清单分类:

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]); 
    } 
} 
相关问题