删除重复元素

从 ES5.1 开始,你可以使用本机方法 Array.prototype.filter 循环遍历数组,只留下通过给定回调函数的条目。

在以下示例中,我们的回调检查数组中是否出现给定值。如果是,则它是重复的,不会被复制到结果数组中。

Version >= 5.1

var uniqueArray = ['a', 1, 'a', 2, '1', 1].filter(function(value, index, self) { 
  return self.indexOf(value) === index;
}); // returns ['a', 1, 2, '1']

如果你的环境支持 ES6,你还可以使用 Set 对象。此对象允许你存储任何类型的唯一值,无论是原始值还是对象引用:

Version >= 6

var uniqueArray = [... new Set(['a', 1, 'a', 2, '1', 1])];

另见 SO 上的以下 anwsers: