今天一个群友忽然提到了一个问题,我的以为挺有意思的,就花了几分钟,各位能够先看看数组
成都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] ``` 后面就是去重了,嗯,主要是前面的小技巧哦~