笔记:数组去重

132 阅读1分钟

数组去重

方法一:使用indexOf 的方法, 有返回第一个的下标 没有返回-1

// 1.indexOf  有返回第一个的下标  没有返回-1
    for(var i = 0;i < newArr.length;i++){
        if(arr.indexOf(newArr[i] )==-1){
            arr.push(newArr[i]);
        }
    }
    console.log(arr);

方法二:使用includes 包含返回true 没有返回false

 for(var i = 0;i < newArr.length;i++){
         if(!arr.includes(newArr[i])){
             arr.push(newArr[i]);
         }
     }

方法三:find 返回第一个符合条件的值 没有返回undefined

for(var i = 0;i < newArr.length;i++){
        if(!arr.find(el=> el=== newArr[i])){
            arr.push(newArr[i])
        }
    }
    console.log(arr);

方法四:findIndex 返回符合条件的下标 没有返回-1

    for(var i = 0; i < newArr.length;i++){
        if(arr.findIndex( el => el === newArr[i]) == -1){
            arr.push(newArr[i]);
        }
    }
    console.log(arr);

方法五:set

let set = new Set([...newArr]);
    console.log(set)

方法六:for()+splice

 for(let i = 0;i < newArr.length;i++){
        for(var j = 0;j < newArr.length;j++){
            if(i != j && newArr[i] == newArr[j]){
                newArr.splice(j,1);
            }
        }
    }
    console.log(newArr)

方法七:reduce + includes 去重

   let arr3 = newArr.reduce((pre,cur)=>{ 
    // return pre.includes(cur)?pre:[...pre,cur]

     if(!pre.includes(cur)){
         return [...pre,cur]
     
     }else{
         return pre
     }
    },[])
    console.log(arr3)