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

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

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

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

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

  1. let originalValues = [
  2. 'a','a','b','c','d'
  3. ];
  4.  
  5. let distinct = new Set(originalValues);
  6. /*
  7. distinct -> { 'a','d' }
  8. */
  9.  
  10. // Perhaps originalValues.extract(distinct) ??
  11. for (let val of distinct.values()) {
  12. const index = originalValues.indexOf(val);
  13. originalValues.splice(index,1);
  14. }
  15.  
  16. /*
  17. originalValues -> [
  18. 'a','c'
  19. ];
  20. */

解决方法

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

猜你在找的JavaScript相关文章