2015-08-29 2 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

использования sortBy on:

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]); 
    } 
} 
Смежные вопросы