将嵌套的数组扁平化
對(duì)于一個(gè)像這樣的嵌套數(shù)組:a=[1,[2,[3,4]],5,6]我們想要把它變成一個(gè)一維數(shù)組,有下面幾種方法:
方法一 :遞歸
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
方法二: 使用toString先變成一個(gè)字符串再使用split變成一個(gè)字符串?dāng)?shù)組(數(shù)組中的每個(gè)元素是一個(gè)字符串),最后使用map方法將數(shù)組中的每個(gè)元素返回為非字符串。
var arr=a.toString().split(',').map(function(ele){return +ele; }); alert(typeof arr[0]); //number- 1
- 2
- 3
- 4
方法三: 使用reduce和concat方法
Array.prototype.flatten=function(){return this.reduce(function(prev, cur) {var moreArr = [].concat(cur).some(Array.isArray); //判斷cur是不是一個(gè)數(shù)組return prev.concat(moreArr ? cur.flatten() : cur);},[]); }; var arr=a.flatten();- 1
- 2
- 3
- 4
- 5
- 6
- 7
參考資料:
前端面試:將嵌套的js數(shù)組轉(zhuǎn)化為一維數(shù)組的許多種辦法
三種常用的js數(shù)組去重方法
總結(jié)
- 上一篇: 如何安装最新版本的office(prev
- 下一篇: sqlalchemy.exc.Progr