通过子属性对对象进行分组

时间:2014-10-03 11:22:11

标签: javascript underscore.js

我有一个对象,它包含从以下JSON加载的对象数组:

"accounts": [
{
  "name": "aa",

  "branch": {
        "id": 1
  }
}

{
  "name": "bb",

  "branch": {
        "id": 1
  }
}

{
  "name": "cc",

  "branch": {
        "id": 2
  }
}
]

我想通过分支ID对它们进行分组。如果我按" set"分组,我只是这样做:

groupMap= _.groupBy(object, 'set');

第一个和最后一个对象组合在一起。但是我如何按财产的属性进行分组?

1 个答案:

答案 0 :(得分:2)

您可以传递一个函数来返回一个值,根据该值进行分组,例如

console.log(_.groupBy(obj.accounts, function(currentObject) {
    return currentObject.branch.id;
}));

<强>输出

{
    '1': [{
        name: 'aa',
        branch: {
            id: 1
        }
    }, {
        name: 'bb',
        branch: {
            id: 1
        }
    }],
    '2': [{
        name: 'cc',
        branch: {
            id: 2
        }
    }]
}