【发布时间】:2021-01-20 18:15:03
【问题描述】:
keysArray: ['key1', 'key2', ..., 'keyn']
originalObject: key-value pairs { key1: value1, key2: value2, ..., keyn: valuen}
updatedObject: pairs with up to n updates values { key1: updatedValue1, key2: value2, key3: updateValue3, ..., keyn: valuen}
我只想将updatedObject 的更新元素传递给updateObjectFunction()。但是,我不想传入一个键以不同值出现两次的元素。
到目前为止,我有:
for (key of keysArray) {
if originalObject[key] !== updatedObject[key] {
updatedElements[key] = updatedObject[key];
}
}
updateObjectFunction(updatedElements);
如何有效避免将重复的元素推入updatedElements?或者我是否应该重新设计流程以提高效率。我只想使用原生 JavaScript 函数。我考虑使用some() 过滤掉for循环中的重复元素,但我认为这太慢了。
【问题讨论】:
-
请添加一些数据和想要的结果。
-
什么是
updatedElements?数组或对象。看起来您可能像使用对象一样使用它。如果是这样,则不能在对象中复制键。 -
您可能想研究使用 Sets developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…。默认情况下,它们只允许唯一的项目。不知道这是否符合你的使用场景。
-
@Taplar 这是一个对象。你说得对。密钥不能重复,因此重复删除没有用处。
-
你在哪里推东西?
标签: javascript arrays loops duplicates