js 数组中去重的五种方法
1.最简单直接:es6 new Set去重
const arr = [1,1,2,2,3,3,4,4,5,5];
const newArr = Array.from(new Set(arr));
console.log(newArr);
2.鸡肋方法:indexOf去重
//去重
const handleRemoveArray = (arr) => {
let currentArr = [];
for (let i = 0,len = arr.length ; i < len; i++)
if (currentArr.indexOf(arr[i]) === -1) currentArr.push(arr[i])
return currentArr;
}
3.类似indexOf:includes去重
const handleRemoveArray = (arr) => {
let currentArr = [];
for (let i = 0,len = arr.length ; i < len; i++)
if (!currentArr.includes(arr[i])) currentArr.push(arr[i])
return currentArr;
}
4.简洁方法(一行代码):filter去重
//去重 一行代码搞定
const handleRemoveArray = (arr) => arr.filter((i, index) => arr.indexOf(i, 0) === index);
5.最原始古老:双重for循环去重
//双重循环去重
const handleRemoveArray = (arr) => {
for (let i=0,len = arr.length; i < len; i++) {
for (let j = i + 1; j < len; j++) {
if (arr[i] === arr[j]) {
arr.splice(j, 1);
j--;
len--;
}
}
}
return arr;
};
萝卜白菜各有所爱,平时项目中对数组的去重操作还挺多,各位小伙伴可以把函数直接封装起来,需要用的时候拿出来真香,好了好了,如果觉得实用的话,希望小伙伴们可以点点关注!!!