一般二维数组
// 第一种办法 concatfattenOnce(arr){ return [].concat(...arr)}// 第二种办法 toString 数据类型会被扭转成字符串fattenOnce(arr){ return arr.toString().split(',')}// 第三种办法 reduce fattenOnce(arr){ return arr.reduce((newArray, currentValue, currentIndex, arr) => newArray.concat(...currentValue),[])}
多维数组展平 递归
// 第一种办法 concatfattenOnce(arr){ return [].concat(...arr.map(item => Array.isArray(item) ? fattenOnce(item) : item))}// 第二种办法 toString 数据类型会被扭转成字符串fattenOnce(arr){ return arr.toString().split(',')}// 第三种办法 reduce fattenOnce(arr){ return arr.reduce((newArray, currentValue) => Array.isArray(currentValue) ? fattenOnce(currentValue) : currentValue,[])}// 函数生成器function* flattenOnce(arr) { for(let i = 0;i < arr.length; i++) { if(Array.isArray(arr[i])) { yield * flatten(arr[i]) } else { yield arr[i] } }}