2017-08-30 107 views
0

我当前有一个由嵌套键值对组成的数组对象(不确定这是否是准确的名称)。我希望能够通过嵌套对象内的值对它进行排序。通过对象内的嵌套值对数组对象排序 - Javascript

例如:

var ObjArray = [ 
    { id = 1, 
     info = { 
      number = 4, 
      name = "foo" 
     } 
    }, 
    { id = 4, 
     info = { 
      number = 12, 
      name = "bar" 
     } 
    }, 
    { id = 9, 
     info = { 
      number = 2, 
      name = "fizz" 
     } 
    } 
]; 

所以最好我可以排序基于“数量”属性这个对象,并将得到的数组对象必须在信息中的数字值进行排序的子对象。

我发现了一个类似的问题(Sorting an object of nested objects in javascript (maybe using lodash?)),但没有考虑另一层嵌套对象。

+0

你能举一个例子来说明所需的输出吗? – Thijs

+1

@destoryer - 他们想根据'each_member.info.number'对'ObjArray'进行排序。他们不想对信息进行排序。 – Quentin

+0

@诚然昆廷说,这个问题讨论了我发布的问题链接类似的情况。不过谢谢。 – dreamkiller

回答

3

所需的排序功能是

ObjArray.sort((a,b) => a.info.number - b.info.number); 

这将对其进行排序升序

降序:

ObjArray.sort((a,b) => b.info.number - a.info.number); 

var ObjArray = [{ 
 
    id: 1, 
 
    info: { 
 
     number: 4, 
 
     name: "foo" 
 
    } 
 
    }, 
 
    { 
 
    id: 4, 
 
    info: { 
 
     number: 12, 
 
     name: "bar" 
 
    } 
 
    }, 
 
    { 
 
    id: 9, 
 
    info: { 
 
     number: 2, 
 
     name: "fizz" 
 
    } 
 
    } 
 
]; 
 

 
ObjArray.sort((a,b) => a.info.number - b.info.number); 
 

 
console.log(ObjArray);

相关问题