【问题标题】:Group JavaScript Array Items on their Value [closed]根据其值对 JavaScript 数组项进行分组 [关闭]
【发布时间】:2014-01-14 15:25:58
【问题描述】:

根据值对 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 答案。

【问题讨论】:

  • 请添加您遇到的问题your current code,以便我们帮助您找出它无法正常工作的原因。添加 fiddle 来展示您当前的问题也会有所帮助。

标签: javascript jquery json


【解决方案1】:

您应该迭代初始数组并创建以prNumber 为键的新对象。以下是使用reduce 的方法(假设您已将数组分配给名为orig 的变量):

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;
}, {});

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

【讨论】:

    猜你喜欢
    • 2021-04-12
    • 2019-05-14
    • 1970-01-01
    • 2021-07-24
    • 2023-03-24
    • 1970-01-01
    • 2018-11-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多