根据值对JavaScript数组项进行分组

根据值对JavaScript数组项进行分组,javascript,jquery,json,Javascript,Jquery,Json,根据值对javascript数组项进行分组 假设您有一个json对象,如: [ { prNumber: 20000401, text: 'foo' }, { prNumber: 20000402, text: 'bar' }, { prNumber: 20000401, text: 'foobar' }, ] 是否可以对prNumber执行联接 例如,所需的输出可能类似于: [ { prNumber: 2000

根据值对javascript数组项进行分组

假设您有一个json对象,如:

[
  {
    prNumber: 20000401,
    text: 'foo'
  },
  {
    prNumber: 20000402,
    text: 'bar'
  },
  {
    prNumber: 20000401,
    text: 'foobar'
  },
]
是否可以对prNumber执行联接

例如,所需的输出可能类似于:

[
  {
    prNumber: 20000401,
    text: [
      'foo',
      'foobar'
    ]
  },
  {
    prNumber: 20000402,
    text: [
      'bar'
    ]
  }
]
我没有任何有价值的代码示例,所以我不会在这里发布它们


这会更倾向于使用普通javascript,但会接受jQuery的答案。

您应该迭代初始数组,并创建新的对象,并键入prNumber。假设已将数组分配给名为orig的变量,下面介绍如何使用reduce执行此操作:

您可以很容易地将其转换为问题中概述的示例结构。

请添加您遇到的问题,以便我们可以帮助您找出它不起作用的原因。添加一个演示当前问题的示例也会有所帮助。
var result = orig.reduce(function(prev, curr, index, arr) {
    var num = curr["prNumber"];
    if (!prev[num]) {
        prev[num] = [];
    }
    prev[num].push(curr["text"]);
    return prev;
}, {});