一个数组去重的简单实现
var arr = [1, 2, 3, 4, 5, 6, 7, 3, 2, 1];
console.log(unique(arr));
function unique(arr) {
var o = {};
for (var i = 0; i < arr.length; i++) {
o[arr[i]] = 1;
}
return Object.keys(o);
}
利用对象键值对的唯一性,先把数组转换为对象,再用Object.keys
转换为数组。
若要兼容IE7,8,可以使用for in
循环
Object.keys
兼容性
ES6版本
function dedupe(array) {
return Array.from(new Set(array));
}
dedupe([1, 1, 2, 3]) // [1, 2, 3]
利用数据结构set
的唯一性。