javascript 巧妙的數組去重

今天一個羣友忽然提到了一個問題,我的以爲挺有意思的,就花了幾分鐘,各位能夠先看看數組

成都JX(109340****) 20:16:38
[2,3,4,2,[2,3],[3,4],3]
如何去重獲得【2,3,4】markdown

那首先是考慮如何去重複,把數組扁平化,通常的想法都是作一個遞歸,判斷數組的層級。我第一下也是這麼想的,忽然想到以前看到的一個方法,特別有意思,代碼以下app

```
var arr = [2,3,4,2,[2,3],[3,4],3];
[].concat.apply([], arr) //[2, 3, 4, 2, 2, 3, 3, 4, 3]`
```
各位能夠去試試,哈哈
返回的是`[2, 3, 4, 2, 2, 3, 3, 4, 3]`

```
var arr = [2,3,4,2,[2,3],[3,4],3];
function noRepeat(arr){
    var res=[];
    [].concat.apply([],arr).forEach(function(item){if(res.indexOf(item)== -1){res.push(item)}});
    return res;
}
noRepeat(arr);//[2, 3, 4]
```
後面就是去重了,嗯,主要是前面的小技巧哦~
相關文章
相關標籤/搜索