从数组中完全删除重复项

诗人

假设我有;

var array = [1,2,3,4,4,5,5];

我想成为

var newArray = [1,2,3];

我想完全删除重复项,而不是将其保留为唯一值。有没有一种方法可以通过减少方法来实现?

妮娜·斯科茨(Nina Scholz)

您可以Array#filterArray#indexOf和一起使用并且Array#lastIndexOf仅返回共享相同索引的值。

var array = [1, 2, 3, 4, 4, 5, 5],
    result = array.filter(function (v, _, a) {
        return a.indexOf(v) === a.lastIndexOf(v);
    });

console.log(result);

另一种方法是采用aMap并将值设置为false,如果以前已经看到过密钥。然后通过获取地图的值来过滤数组。

var array = [1, 2, 3, 4, 4, 5, 5],
    result = array.filter(
        Map.prototype.get,
        array.reduce((m, v) => m.set(v, !m.has(v)), new Map)
    );

console.log(result);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章