1. forEach函数 + indexOf方法
function removeDouble(arr){
let ns = [];
arr.forEach(function(item,index,array){
if(arr.indexOf(item) == index){
ns.push(item);
}
})
return ns;
}
let a = [1,3,4,5,6,2,3,1,4,6,7,8,9,0,2,1,3];
let b = removeDouble(a);
console.log(b);
结果:
[1, 3, 4, 5, 6, 2, 7, 8, 9, 0]
2. for循环语句 + indexOf方法
function removeDouble(arr){
let ns = [];
for (let i = 0; i < arr.length; i++) {
if(ns.indexOf(arr[i]) == -1){
ns.push(arr[i]);
}
}
return ns;
}
let a = [1,3,4,5,6,2,3,1,4,6,7,8,9,0,2,1,3];
let b = removeDouble(a);
console.log(b);
结果:
[1, 3, 4, 5, 6, 2, 7, 8, 9, 0]
3. filter函数方法
function removeDouble(arr){
let ns = [];
ns = arr.filter(function(item,index,array){
return arr.indexOf(item) == index;
});
return ns;
}
let a = [1,3,4,5,6,2,3,1,4,6,7,8,9,0,2,1,3];
let b = removeDouble(a);
console.log(b);
结果:
[1, 3, 4, 5, 6, 2, 7, 8, 9, 0]
4. splice方法
function removeDouble(arr){
for (let i = 0; i < arr.length; i++) {
for (let j = i+1; j < arr.length; j++) {
if(arr[i] == arr[j]){
arr.splice(j,1);
j--;
}
}
}
return arr;
}
let a = [1,3,4,5,6,2,3,1,4,6,7,8,9,0,2,1,3];
let b = removeDouble(a);
console.log(b);
结果:
[1, 3, 4, 5, 6, 2, 7, 8, 9, 0]
5. Set方法
function removeDouble(arr){
let ns = [];
let set = new Set(arr);
ns = [...set];
return ns;
}
let a = [1,3,4,5,6,2,3,1,4,6,7,8,9,0,2,1,3];
let b = removeDouble(a);
console.log(b);
结果:
[1, 3, 4, 5, 6, 2, 7, 8, 9, 0]
6. Set方法和Array.from方法
function removeDouble(arr){
return Array.from(new Set(arr));
}
let a = [1,3,4,5,6,2,3,1,4,6,7,8,9,0,2,1,3];
let b = removeDouble(a);
console.log(b);
结果:
[1, 3, 4, 5, 6, 2, 7, 8, 9, 0]