【发布时间】:2021-02-08 06:17:21
【问题描述】:
我有 2 个数组:
var arr1 = [{name:"Option1"},{"name":"Option2"},{"name":"Option3"},{"name":"Option4"},{"name":"Option5"},{"name":"Option6"},{"name":"Option7"},{"name":"Option8"},{"name":"Option9"},{"name":"Option10"}]
var arr2 = [{"name": "Option 2"},{"name": "Option 4"},{"name": "Option 6"},{"name": "Option 8"},{"name": "Option 10"}]
我希望实现的是第三个数组,其中包含来自 arr1 的所有值以及 "marked":true 的附加标志,如果该值在 arr2 ELSE "marked" 中找到:错误
我尝试了各种 arry 方法的组合,例如 map()、filter()、forEach(),但不知何故无法弄清楚如何在不重复值或重复条目的情况下正确返回。
** 我看到的是,我的内部和外部循环都执行了两个语句,我不知何故错过了返回真/假逻辑,最终重复我的循环的次数等于 arr2 的长度。 **
function test() {
var arr1 = [{
name: "Option1"
},
{
"name": "Option2"
},
{
"name": "Option3"
},
{
"name": "Option4"
},
{
"name": "Option5"
},
{
"name": "Option6"
},
{
"name": "Option7"
},
{
"name": "Option8"
},
{
"name": "Option9"
},
{
"name": "Option10"
}
]
var arr2 = [{
"name": "Option2"
},
{
"name": "Option4"
},
{
"name": "Option6"
},
{
"name": "Option8"
},
{
"name": "Option10"
}
]
arr1.forEach((el) => {
arr2.forEach((el2) => {
if (el.name.toString() === el2.name.toString()) {
return console.log("Printing from inside the if loop", el)
}
console.log("Printing from outside the if loop", el)
})
})
}
test()
【问题讨论】:
标签: javascript node.js arrays multidimensional-array