javascript如何实现扁平化数组?这是一道前端面试的老题目了,拍扁数组,考察的是对数组的应该喝处理能力,将多维数组拍扁成一维数组!那么如何实现javascript扁平化数组,七娃整理出来常用的几种方法。
面试题二十一:js/javascript扁平化数组-QUI-Notes
方法1:通过flat()直接拍扁数组

let cc = arr.flat();

方法2:concat() 链接数组,将二维数组转为一维数组,
缺点:3级以上扁平化将失效

let a = [0,1,2,3,[5,6,7,8],[7,8,[111,555,'aaa']]];
let b = [].concat(...a); //[2, 3, 5, 6, 7, 8, Array(2)]

方法3:join方法+map
通过join方法将数组转化为以点隔开的字符串,在使用split把转化的字符串转化成字符串数组,通过map方法将内部字符串转化数字类型
缺点:
对字符串失效

let c = arr.join(',').split(',').map( item => Number(item))

方法4: 函数递归

function flat(arr){
	let newO = [];
	for(let i = 0;i<arr.length;i++){
		if(Array.isArray(arr[i])){
		 	newO = newO.concat(flat(arr[i]))
		}else{
			newO.push(arr[i])
		}
	}
	return newO;
}