数组去重的方法以及优化和兼容
1.使用两层循环(一般不推荐,过于麻烦)
2.使用数组的includes属性,判断是否存在该数值
function uniq(arr) {
var myArr = [];
for(var i=0;i<arr.length;i++) {
if(!myArr.includes(arr[i])) myArr.push(arr[i]);
}
return myArr;
}不兼容IE
3.使用数组的indexOf()属性
function uniq(arr){
var myArr = [];
for(var i =0;i<arr.length;i++) {
if(myArr.indexOf(arr[i])==-1)
{
myArr.push(arr[i]);
}
}
return myArr;
}不兼容IE6-8
4.使用set去重
Array.from(new Set(arr))
不兼容IE6-10
5.利用对象或者Map去重
function uniq(arr){
var obj={};
var myArr=[];
for(var i=0;i<arr.length;i++){
var key=typeof(arr[i])+arr[i];//对象的key只有字符串形式
if(obj[key]!==1){
obj[key]=1;
myArr.push(arr[i])
}
}
return myArr;
}兼容IE

查看9道真题和解析