javascriptの巧妙な配列は重いです.

638 ワード

今日は友達のグループが突然問題を言いました.個人的には面白いと思います.数分間かかりました.まず見てください.
成都JX(109340***)20:16:38[2,3,4,2,3],[3,4],3]はどうやって重さを取りますか?【2,3,4】
それはまず、どうやって繰り返すかを考えて、配列を平坦化し、一般的な考え方は再帰的に配列の階層を判断します.私も最初はそう思いました.前に見た方法を思い出しました.特に面白いです.コードは次の通りです.


```
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]
```
       , ,          ~