数组去重
2022-08-30 本文已影响0人
早起的月亮
数据去重的方法虽然有很多,但是原理基本都一样,这边我简单的列举了一些我个人认为比较具有代表性的方法 。
1. new Set()
var list = [1,1,2,3,4,5,6,4,5,6,7,4,3]
var newList = []
// 第一步 去重 ,此时newList 的类型为object,是一个类数组
newList = new Set(list)
// 第二步 类型转换, 把类数组转换为数组
newList = Array.from(newList)
2. sort()
var list = [1,1,2,3,4,5,6,4,5,6,7,4,3]
var newList = []
list.sort((a,b)=>{
return a-b
})
for(let i=0;i<list.length;i++){
if(list[i] !== list[i+1] ){
newList.push(list[i])
}
}
3. reduce()
var list = [1,2,3,4,5,1,3,4,5,6]
list = list.reduce((pre,cur)=>{
pre.includes(cur) ? "" : pre.push(cur)
return pre
},[])
4. indexOf()
var list = [1,1,2,3,4,5,6,4,5,6,7,4,3]
var newList = []
for(let i = 0;i<list.length;i++){
if(newList.indexOf(list[i]) == -1){
newList.push(list[i])
}
}
console.log(newList)
5. 双重for循环
var list = [1,1,2,3,4,5,6,4,5,6,7,4,3]
var newList = []
var flag;
for(let i =0;i<list.length;i++){
flag = false
for(let j = 0;j<newList.length;j++){
if(list[i] == newList[j]){
flag = true
}
}
//如果flag == false,表示newList里面不存在相同的。
if(!flag) {
newList.push(list[i])
}
}