一、ES6语法,Set去重
function funSet(arr){
return Array.form(new Set(arr))
}
这个是目前最简单的去重方法,但是这个方法不支持对象,可以支持一些简单的数据格式去重
二、双重for循环去重
function funFor(arr){
let i,
j,
len = arr.length;
for(i = 0; i < len; i++){
for(j = i + 1; j < len; j++){
if(arr[i] == arr[j]){
arr.splice(j,1);
len--;
j--
}
}
}
return arr
}
三、利用indexOf去重
function funIndexOf(arr){
let newArr = [];
for(let i=0;i<arr.length;i++){
if(newArr.indexOf(arr[i]) == -1){
newArr.push(arr[i])
}
}
return newArr;
}
四、利用includes去重
function funInclude(arr){
let newArr = [];
for(let i = 0; i < arr.length; i++){
if(!newArr.includes(arr[i])){
newArr.push(arr[i])
}
}
return newArr
}
五、filter去重
function funFilter(arr){
return arr.filter((item,index) => {
return arr.indexOf(item, 0) == index
})
}
六、Map
function funMap(arr){
let map = new Map();
let newArr = [];
for(let i = 0, len = arr.length; i < len; i++){
if(map.has(arr[i])){
map.set(arr[i], true);
}else{
map.set(arr[i], false);
newArr.push(arr[i])
}
}
return newArr;
}