javascript 在对象数组中查找公共值并组织它们

r7s23pms  于 2022-11-20  发布在  Java
关注(0)|答案(1)|浏览(121)

我有一个问题,如何找到一个共同的值在数组的对象。我有一个大数组的对象和每2个对象有相同的transactionHash。我需要找到那些对象有相同的值,并把他们放在一个数组。

[
  [{...otherData, transactionHash: 1}, {...otherData, transactionHash: 1}]
  [{...otherData, transactionHash: 2}, {...otherData, , transactionHash: 2}]
]

我需要它就这样被归还!
我试图缩小阵:

return yourData.reduce(function(curr, x) {
    (curr[x[key]] = curr[x[key]] || []).push(x);
    return curr;
})

令人惊讶的是,我把大部分数据组织起来了,但不知何故,最后一个对象的位置不对,但具有相同'transactionHash'的对象存在。

zwghvu4y

zwghvu4y1#

您忘记传递curr的初始值-

return yourData.reduce(function(curr, x) {
    (curr[x[key]] = curr[x[key]] || []).push(x);
    return curr;
}, {});

如果没有,则yourData的第一个元素将用作初始值。

相关问题