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