按嵌套子数组对 arr 进行排序

Sort arr by nested sub-array

本文关键字:排序 arr 嵌套 数组      更新时间:2023-09-26

这是我的arr:

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一起使用吗?

你可以试试这个:

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