我有一个像这样的javascript数组
var arr = [1,2,1.5,3,1.5,1];
Run Code Online (Sandbox Code Playgroud)
我想从数组中删除所有重复的值,所以我的输出将是
[2,3]
Run Code Online (Sandbox Code Playgroud)
我可以使用loops来做.我在这里发布了这个问题,因为我需要一种禁食方式来完成它.
您可以检查值的第一个和最后一个索引,并在索引相同时使用它.
var array = [1, 2, 1.5, 3, 1.5, 1],
ones = array.filter((v, _, a) => a.indexOf(v) === a.lastIndexOf(v));
console.log(ones);Run Code Online (Sandbox Code Playgroud)
一种方法Map.
如果地图已经有一个具有给定值的条目,则通过检查的相反方式使用地图.
对于任何后续相同的值,条目将更改为
false,稍后将省略这些值.
var array = [1, 2, 1.5, 3, 1.5, 1, 1, 1],
map = array.reduce((m, v) => m.set(v, !m.has(v)), new Map),
ones = array.filter(Map.prototype.get, map);
console.log(ones);
console.log([...map]); // just for checking the valuesRun Code Online (Sandbox Code Playgroud)