如何从Array创建Set并删除JavaScript中的原始项

前端之家收集整理的这篇文章主要介绍了如何从Array创建Set并删除JavaScript中的原始项前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个重复值的数组.

我想创建一个Set来获取该数组的不同值,并删除或创建一个新的Array,它将具有相同的数据MINUS创建Set所需的元素.

这不仅仅是删除重复项,而是删除原始数组中每个不同值的SINGLE条目

这样的东西有效,但我想知道是否有更直接的方法

let originalValues = [
  'a','a','b','c','d'
];

let distinct = new Set(originalValues);
/*
distinct -> { 'a','d' }
*/

// Perhaps originalValues.extract(distinct) ??
for (let val of distinct.values()) {
  const index = originalValues.indexOf(val);
  originalValues.splice(index,1);
}

/* 
originalValues -> [
  'a','c'
];
*/

解决方法

您可以在 Set上使用闭包并检查是否存在.
let originalValues = ['a','d'],result = originalValues.filter((s => a => s.has(a) || !s.add(a))(new Set));

console.log(result);

猜你在找的JavaScript相关文章