手写数组扁平化
就是把多维数组变成一维数组
flat
let arr = [1,[2,[3,[4]]]]
let flatArr = arr.flat(Infinity)
console.log(flatArr);
// [1, 2, 3, 4]
for 循环
思路:
- 初始化
result = []
- for 遍历
- 判断数组类型
- 是 递归 result.concat(mFlat(element))
- 不是 result.push(element)
- 判断数组类型
function myFlat(array) {
let result = []
for (let i = 0; i < array.length; i++) {
const element = array[i];
if(Array.isArray(element)){
result = result.concat(myFlat(element))
}else{
result.push(element)
}
}
return result
}
使用方法:
let arr = [1,[2,[3,[4]]]]
console.log(myFlat(arr));
// [1, 2, 3, 4]