【问题标题】:Javascript - GroupBy key and how to model the resulting objectJavascript - GroupBy 键以及如何对结果对象进行建模
【发布时间】:2016-08-23 08:58:10
【问题描述】:

我有这个项目数组:

[
  {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'],
}

...这不是我想要的。我很确定这很愚蠢,但有点卡住了:(

【问题讨论】:

    标签: javascript underscore.js


    【解决方案1】:

    好的,在这里找到答案Group objects by property in javascript

    所以groupBy现在被封装在一个链中,并将结果传递给_.map函数:

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

    【讨论】:

      猜你喜欢
      • 2021-03-06
      • 1970-01-01
      • 2021-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多