删除重复元素
从 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: