按值
分组javascript数组项假设您有一个json对象,如:
[
{
prNumber: 20000401,
text: 'foo'
},
{
prNumber: 20000402,
text: 'bar'
},
{
prNumber: 20000401,
text: 'foobar'
},
]
是否可以在prNumber上执行“加入”?
例如,可能所需的输出类似于:
[
{
prNumber: 20000401,
text: [
'foo',
'foobar'
]
},
{
prNumber: 20000402,
text: [
'bar'
]
}
]
我没有任何代码样本,所以我不会在这里发布。
这最好使用vanilla javascript,但会接受jQuery的答案。
答案 0 :(得分:9)
您应该迭代初始数组并创建从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;
}, {});
您可以轻松将其转换为问题中列出的示例结构。