将嵌套的数组扁平化
對于一個像這樣的嵌套數組:a=[1,[2,[3,4]],5,6]我們想要把它變成一個一維數組,有下面幾種方法:
方法一 :遞歸
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
方法二: 使用toString先變成一個字符串再使用split變成一個字符串數組(數組中的每個元素是一個字符串),最后使用map方法將數組中的每個元素返回為非字符串。
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是不是一個數組return prev.concat(moreArr ? cur.flatten() : cur);},[]); }; var arr=a.flatten();- 1
- 2
- 3
- 4
- 5
- 6
- 7
參考資料:
前端面試:將嵌套的js數組轉化為一維數組的許多種辦法
三種常用的js數組去重方法
總結
- 上一篇: 如何安装最新版本的office(prev
- 下一篇: PYA 练习2-3 输出倒三角图案