在本机javascript中从数组中删除重复值的最佳方法是什么

Sha*_*i S 2 javascript arrays

我有一个像这样的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来做.我在这里发布了这个问题,因为我需要一种禁食方式来完成它.

Nin*_*olz 8

您可以检查值的第一个和最后一个索引,并在索引相同时使用它.

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 values
Run Code Online (Sandbox Code Playgroud)