数组去重方法老生常谈,既然是常谈,我也来谈谈。 我比较常用的方法如下: 个人习惯常用2,3,4 1的话比较兼容
1.双层循环
var array = [1, 1, '1', '1'];
function outArr(array) {
// res用来存储结果
var res = [];
for (var i = 0;i < array.length; i++) {
for (var j = 0; j < res.length; j++ ) {
if (array[i] === res[j]) {
break;
}
}
// 如果array[i]是唯一的,那么执行完循环,j等于res.length
if (j === res.length) {
res.push(array[i])
}
}
return res;
}
console.log(outArr(array)); // [1, "1"]
2.indexOf
var array = [1, 1, '1'];
function outArr(array) {
var res = [];
for (var i = 0, len = array.length; i < len; i++) {
var current = array[i];
if (res.indexOf(current) === -1) {
res.push(current)
}
}
return res;
}
console.log(outArr(array));
3.filter
var array = [1, 2, 1, 1, '1'];
function outArr(array) {
var res = array.filter(function(item, index, array){
return array.indexOf(item) === index;
})
return res;
}
console.log(outArr(array));
4.最简单最新的ES6---set()
function outArr(array) {
return [...new Set(array)];
}