通过对象中的嵌套值对数组对象进行排序 - Javascript

时间:2017-08-30 13:17:33

标签: javascript arrays json sorting

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

例如:

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

理想情况下,我可以根据'number'属性对此对象进行排序,并且生成的数组对象将具有按信息中的数字值排序的子对象。

我发现了一个类似的问题(Sorting an object of nested objects in javascript (maybe using lodash?)),但未考虑其他级别的嵌套对象。

1 个答案:

答案 0 :(得分: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);




相关问题