Skip to main content

手写数组扁平化

就是把多维数组变成一维数组

flat

let arr = [1,[2,[3,[4]]]]

let flatArr = arr.flat(Infinity)
console.log(flatArr);
// [1, 2, 3, 4]

for 循环

思路:

  1. 初始化result = []
  2. 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]