JavaScript - 按键分组并建模生成的对象

4

我有一个项目数组:

[
  {id: 1, label: 'test', parent: 'parent 1'},
  {id: 2, label: 'fool', parent: 'parent 1'},
  {id: 3, label: 'bla', parent: 'parent 2'},
  {id: 4, label: 'foo', parent: 'parent 2'}
]

我正在尝试从中获得以下类似的东西:
[
  {parent: 'parent 1', members: [{id: 1, label: 'test'}, {id: 2, label: 'fool']},
  {parent: 'parent 2', members: [{id: 3, label: 'bla'}, {id: 4, label: 'foo']}
]

使用underscore.js,我能够达到这个点:
_.groupBy(myList,'parent')
=> 
{
  'parent 1': [{id: 1, label: 'test'}, {id: 2, label: 'fool'],
  'parent 2': [{id: 3, label: 'bla'}, {id: 4, label: 'foo'],
}

这并不是我想要的内容。我相信其中有些愚蠢的地方,但卡在这里出不来了 :(

1个回答

2

好的,这里找到了答案 如何在JavaScript中按属性分组对象

现在groupBy已经封装在链中,并将结果传递给_.map函数:

.chain(myList)
      .groupBy('parent')
      .map(function(value, key) {
        return {
          parent: key,
          members: value
      }
    })
    .value()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接