声明一个多维数组
比如:
var arr=[5,5,5,5,[2,4,[2,[23,5],6],7],3,2,2,5]
那么如何将这个多维数组全给展开呢?
方法一:使用toString
var newarr = arr.toString() //结果"5,5,5,5,2,4,2,23,5,6,7,3,2,2,5"
var newarr1 = newarr.split(',')
//结果["5", "5", "5", "5", "2", "4", "2", "23", "5", "6", "7", "3", "2", "2", "5"]
newarr = newarr.map(item=>item*1)
//最终结果 [5, 5, 5, 5, 2, 4, 2, 23, 5, 6, 7, 3, 2, 2, 5]
map():对原数组加工处理,得到一个新数组
方法二:使用递归
function flatFn(arr) {
var result=[];
if(!(arr instanceof Array)) return;
for(var key in arr) {
result=result.concat(Array.isArray(arr[key]) ? flatFn(arr[key]) : arr[key] )
}
return result;
}
方法三:使用flat扁平化
arr.flat(3) //数字代表展开的层数
有关数组的一些参考方法,可参考:
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce