美文网首页让前端飞
数组去重-JavaScript

数组去重-JavaScript

作者: AlbertZX | 来源:发表于2020-11-05 17:41 被阅读0次
    数组是JavaScript中最常见的一种数据结构,数组去重在开发过程中和面试过程中都会经常遇到,现整理了一些用于数组去重的方法,可以用于前端面试准备材料。

    〇、先准备一个数组

    let arr = [1,2,3,4,5,3,2,1,'','','1',{},{},null,null,NaN,NaN,undefined,undefined]
    

    一、ES6中的Set结构

    let arr1 = [...new Set(arr)];
    console.log(arr1); //[1, 2, 3, 4, 5, "", "1", {…}, {…}, null, NaN, undefined]
    

    二、利用filter()方法

    let arr2 = arr.filter((item,index)=>{
      return arr.indexOf(item) == index
    })
    console.log(arr2); // [1, 2, 3, 4, 5, "", "1", {…}, {…}, null, undefined]
    

    三、两层for循环 + splice()

    function quchong(arr){
       for(let i=0;i<arr.length;i++){
         for(let j=i+1;j<arr.length;j++){
           if(arr[i] == arr[j]){
               arr.splice(j,1);
               j--;
            }
         }
       }
       return arr
    }
    let arr3 = quchong(arr);
    console.log(arr3); //[1, 2, 3, 4, 5, "", {…}, {…}, null, NaN, NaN]
    

    四、利用indexOf()

    function quchong2(arr){
       let arr_ = [];
       for(let i=0;i<arr.length;i++){
          if(arr_.indexOf(arr[i]) == -1){
             arr_.push(arr[i])
           }
         }
         return arr_
    }
    let arr4 = quchong2(arr);
    console.log(arr4); //[1, 2, 3, 4, 5, "", {…}, {…}, null, NaN, NaN]
    

    五、利用reduce() + includes()

    let arr5 = arr.reduce((prev,cur)=>{
       if(!prev.includes(cur)){
          prev.push(cur)
        }
        return prev
    },[])
    console.log(arr5) //[1, 2, 3, 4, 5, "", {…}, {…}, null, NaN]
    

    【作者水平有限,欢迎大家在评论区交流指正~】

    相关文章

      网友评论

        本文标题:数组去重-JavaScript

        本文链接:https://www.haomeiwen.com/subject/drdavktx.html