javascript - 迭代集合并删除元素(如果它在另一个集合中)并返回数组

标签 javascript loops set

我不确定我的函数中缺少什么来删除集合中的元素。看来循环没有按预期工作。如果您有更优化的 O(1) 解决方案,请分享。谢谢!

const dupArr = ["a", "b", "c", "d", "d",'dog']

function transformSearchFields(fields) {
  let noDupes = new Set(fields)
  const searchData = new Set(['dog', 'a'])

  // iterate over noDupes set and check if element is in the searchData set. If it is, remove the element from the noDupes set
  noDupes.forEach(element => {
    if (element in searchData) {
        noDupes.delete(element)
    }
  })

  return [...noDupes]
  }
// desired output: ["b", "c", "d"]

我希望循环删除 searchData 集中的值

最佳答案

以下是如何过滤响应中具有唯一值的数组的示例:

const inputArray = ['a', 'b', 'c', 'd', 'd', 'dog'];
const dataToReject = ['dog', 'a'];

const filteredUniqueArray = [...new Set(
  inputArray.filter(inputArrayElement =>
    !dataToReject.some(dataToRejectElement => 
      inputArrayElement == dataToRejectElement
    )
  )
)];

console.log(filteredUniqueArray); // ['b', 'c', 'd']

关于javascript - 迭代集合并删除元素(如果它在另一个集合中)并返回数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75826050/

相关文章:

javascript - 刷新数据表列

javascript - 如何减慢 JavaScript 循环

python - Python 中的嵌套循环将结果存储在单个字典中

python - 为什么我不能将 True 存储在 Set 中?

转换为枚举集的 Java 不可修改集

python - 字典 View 对象与集合

javascript - CSS overflow hidden vs. visible 对父元素位置的奇怪影响

javascript - 为什么 'info' 对象未定义?

javascript - 使用 Javascript 显示和隐藏带有下一个上一个按钮的图像

c++ - 使用迭代器循环遍历迭代器 vector