合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
1. while循环配合concat,展开语法 ```js function flat(arr, num = Infinity) { let i = 0; // 层级 let res = arr // 判断是否存在子数组 let flag = true while(flag) { flag = res.some(item => Array.isArray(item)) console.log(flag); res = [].concat(...res) // 核心语法,利用...与concat构建一个展开的数组 i++ if (i >= num) { break } } return res } ``` 2.reduce递归配合展开语法 ```js function flat2(arr) { return arr.reduce((pre, cur) => { if (Array.isArray(cur)) { // 如果是数组,则拼接新数组时调用flat2,处理内部 return [...pre, ...flat2(cur)] } else { // 如果不是数组,则展开拼接成一个新数组 return [...pre, cur] } }, []) } ```