通过嵌套子数组对arr进行排序

时间:2016-02-09 17:44:21

标签: javascript sorting underscore.js

这是我的先生:

var arr = [
    {
        "name": "ASD",
        "properties": [
            {
                "name": "TypeId",
                "nominalValue": "AC101"
            },
            {
                "name": "Description",
                "nominalValue": "text here"
            }
        ]
    },
    {
        "name": "EWQ",
        "properties": [
            {
                "name": "TypeId",
                "nominalValue": "AB123"
            },
            {
                "name": "Description",
                "nominalValue": "text here"
            }
        ]
    }
]

我想通过在属性arr中给出name来对其进行排序,然后按nominalValue

排序返回它

像这样:

var sortedArr = sortListByPropertyName(arr, 'TypeId'); //Sorts list by 'AB123', 'AC101'..

我的数据集非常大,所以尽可能优化它是很重要的。我可以使用_.sortBy和一些聪明的chains吗?

1 个答案:

答案 0 :(得分:0)

你可以试试这个:

function sortListByPropertyName(arr, propName) {
  return _.sortBy(arr, function(obj) {
    return
    _.find(obj.properties, function(prop) {
      return prop.name == propName
    }).nominalValue;
  });
}