假设我有;
var array = [1,2,3,4,4,5,5];
我想成为
var newArray = [1,2,3];
我想完全删除重复项,而不是将其保留为唯一值。有没有一种方法可以通过减少方法来实现?
您可以Array#filter
与Array#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] 删除。
我来说两句