首页 > 解决方案 > 在插入数组之前检查重复项

问题描述

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}

我只想传递 to 的更新updatedObject元素updateObjectFunction()。但是,我不想传入一个键以不同值出现两次的元素。

到目前为止,我有:

for (key of keysArray) {
  if originalObject[key] !== updatedObject[key] {
    updatedElements[key] = updatedObject[key];
  }
}
updateObjectFunction(updatedElements);

如何避免updatedElements有效地将重复的元素推入?或者我是否应该重新设计流程以提高效率。我只想使用原生 JavaScript 函数。我考虑使用some()过滤掉 for 循环中的重复元素,但我认为这太慢了。

标签: javascriptarraysloopsduplicates

解决方案


您可以使用Set删除重复的键:

Set对象允许您存储任何类型的唯一值,无论是原始值还是对象引用。

// "one" is in the list twice:
const arr = ['one', 'two', 'three', 'one', 'five']

console.log([...new Set(arr)])


推荐阅读