1. 程式人生 > >js 數組去重的方法總結

js 數組去重的方法總結

index 直接 unique 都是 沈澱 spa clas 轉換 見證

想沈澱一下自己。代碼改變世界~~~

1、利用Array.from代碼如下

1         var arr = [1,2,3,4,3,2,1]
2     function unique(arr){
3         return Array.from(new Set(arr))
4     }
5     console.log(unique(arr))

2、利用es6(...)拓展運算符。demo

1 var arr = [1,2,3,4,3,2,1]
2     function unique(arr){
3         return [...new Set(arr)]
4
} 5 console.log(unique(arr))

3、利用Object.keys() ;直接上代碼

var obj = {},newArr,arr = [1,2,3,4,5,3,2,1];
    for (var i = arr.length - 1; i >= 0; i--) {
        obj[arr[i]] = null;
    };
    newArr = Object.keys(obj);
    console.log(newArr)//這裏有個問題就是會轉換成字符串。自己看情況使用吧。當然也是可以處理的

4、比較中規中矩的方法。和第三種差不多()。

var arr = [1,2,3,4,3,2,1]

    var o  = {},arr1 = [];
    for (var i = arr.length - 1; i >= 0; i--) {
        if(!o[arr[i]]){
            o[arr[i]] = true;
            arr1.push(arr[i])
        }
    };
    console.log(arr1)

5、這個是我突然有次發現的。來啦(下面就是見證奇跡的時刻)(這是自己看完mdn對於reduce的介紹以後,自己想到的,結果實現了。感覺很有成就。啦啦啦啦啦)

var arr = [1,2,3,4,3,2,1]

var newarr =    arr.reduce(function(prev,now){
        if(prev.indexOf(now)<0){prev.push(now)}
return prev
    },[])
    console.log(newarr)

其實,對於js數組去重的方法還有很多。那些循環巴拉巴拉巴拉 ,就不在這裏展示了。這幾種方法都是比較新穎的吧。至少自己是這樣認為嘚。就像開始說的那樣。我想沈澱一下自己了。因為有時候感覺有點迷茫。想通過寫博客代碼的方式讓自己放松一下。找回自己。希望自己能加油堅持下去,以後盡量每周會分享一些自己的心得與收獲。我在這裏希望自己能成為一個合格的前端人員。謝謝大家。

本文可全文轉載,但需要同時保留原作者和出處。

js 數組去重的方法總結