let arr = [1,1,2,2,3,3,3,4,4,6,7,8,5];
arr = arr.sort();
1、循环比较数组中的元素是否有相同的
function removalFun1(arr) {
if(!arr) return false;
if(arr.length === 1) return arr;
let result = [];
arr.forEach((item, index) => {
if(arr[index] !== arr[index + 1]) {
result.push(item)
}
})
return result;
}
console.log(removalFun1(arr)); // [1, 2, 3, 4, 5, 6, 7, 8]
2、indexOf方法验证,值为-1表示不存在这个元素
function removalFun2(arr) {
if(!arr) return false;
if(arr.length === 1) return arr;
let result = [];
arr.forEach(item => {
if(result.indexOf(item) === -1) {
result.push(item)
}
})
return result;
}
console.log(removalFun2(arr)); // [1, 2, 3, 4, 5, 6, 7, 8]
3、借助对象判断元素是否存在
function removalFun3(arr) {
if(!arr) return false;
if(arr.length === 1) return arr;
let result = [];
let obj = {};
arr.forEach(item => {
if(!obj[item]) {
obj[item] = true;
result.push(item)
}
})
return result;
}
console.log(removalFun3(arr)); // [1, 2, 3, 4, 5, 6, 7, 8]
4、ES6方法:new Set()
function removalFun4(arr) {
if(!arr) return false;
if(arr.length === 1) return arr;
// let result = Array.from(new Set(arr)); // Array.from方法可以将Set结构转为数组
let result = [...new Set(arr)]; // 数组解构
return result;
}
console.log(removalFun4(arr)); // [1, 2, 3, 4, 5, 6, 7, 8]