数组去重

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])
    }
}
上一篇下一篇

猜你喜欢

热点阅读