數組去重的多種方法實現

<script>

    //第一種方式
    var arr=[23,1,34,7,1,3,5,2,3]; //定義一個數組
    var newArr = [];   //定義一個新的臨時數組
    var result = {};   //hash表
    for(var i=0;i<arr.length;i++){    //循環遍歷數組
        if(!result[arr[i]]){  //若是遍歷到的數組不在hash表中
            result[arr[i]] = true;  //將當前遍歷到的數組元素存入到hash表中
            newArr.push(arr[i]);  //將當前元素push到新數組
        }
    }
    console.log(newArr);

    //第二種方法
    var arr=[23,1,34,7,1,3,5,2,3]; //定義一個數組
    var newArr = [];   //定義一個新的臨時數組
    for(var i=0;i<arr.length;i++){   //遍歷數組
        if(newArr.indexOf(arr[i])==-1) newArr.push(arr[i]);
        //判斷當前元素是否能在臨時數組中找到,若是沒找到就將其追加到臨時數組中,再對當前元素後面的元素繼續查找以及比較
    }

    console.log(newArr);

    //第三種方式
    var arr=[23,1,34,7,1,3,5,2,3]; //定義一個數組
    arr.sort();   //先將數組排序
    var newArr=[arr[0]];   //定義一個新數組,並將數組第一個元素放到新數組中
    for(var i=0;i<arr.length;i++){
        if(arr[i] !==newArr[newArr.length-1]){ //經過判斷相鄰兩項是否相等,而後項新數組中追加元素,返回新數組
            newArr.push(arr[i]);
        }
    }
    console.log(newArr);

</script>數組

相關文章
相關標籤/搜索