【发布时间】:2021-08-18 18:11:13
【问题描述】:
我有两个大数组,一个是项目,另一个是拥有这些项目的名称。我需要将所有具有匹配项的名称推送到 array2 项中。
我可以通过嵌套 forEach 循环来做到这一点:
array1 = [
{item: "1", name: "Joe" },
{item: "2", name: "Sam" },
{item: "1", name: "Alice"},
{item: "3", name: "Peter"},
{item: "1", name: "Jack"},
]
array2 = [
{ item: "1", names: []},
{ item: "2", names: []},
{ item: "3", names: []},
]
array2.forEach(x => {
array1.forEach(y => {
if( x.item === y.item ){
x.names.push(y.name)
}
})
})
console.log(array2)
但我感觉这是一种不好的做法,更不用说大型阵列上的资源繁重了。
现代的方法是什么?
【问题讨论】:
-
请记住,您可能并不总是知道可用的
item值可按它们分组。因此,事情可能会变得更糟,因为您需要遍历源数组以获取唯一的item值,从而从中构建您的array2。 -
我从您的示例和文档链接中学到了很多,欣赏它
标签: javascript html foreach