【发布时间】:2016-11-12 19:06:23
【问题描述】:
假设我有一个这样的数组
let arrayOne = [{text="one", value=0},{text="two", value=0}]
let arrayTwo = [{text="two", value=5}]
所以arrayOne 将始终是我想要的整个对象集,但所有值都将为 0。arrayTwo 将具有该数组的一个子集,但始终具有一个值集。我想要的如下,如果arrayOne中存在arrayTwo对象,则将值复制到arrayOne对象中。
所以最后我想要
let arrayOne = [{text="one", value=0},{text="two", value=5}]
我做了这样的事情,但我觉得我缺少一些 es6 魔法。
for (let orig of arrayOne) {
arrayTwo.find(item => {
if (item.value == orig.value) {
Object.assign(orig, item);
}
})
}
【问题讨论】:
-
“我觉得我缺少一些 es6 魔法” 不是真的,但这不是
find的正确用法。回调应返回true或false,然后.find将返回匹配值或null。你使用它的方式,你应该使用forEach。此外,迭代arrayTwo可能更有意义。 -
@Felix 得到了很好的反馈