手写JS数组扁平化,类似flat的功能

代码实现

const arr = [1, 2, 3, [4, 5], 6, [7, [8, [9]]]];

console.log(arr.flat(3));

function myFlat(arr) {
  // 判断数组里面有没有多层级
  const isDeep = arr.some((item) => item instanceof Array);
  if (!isDeep) {
    return arr;
  }

  let res = [];
  for (let i = 0; i < arr.length; i++) {
    if (arr[i] instanceof Array) {
      res = res.concat(myFlat(arr[i]));
    } else {
      res.push(arr[i]);
    }
  }

  return res;
}

console.log(myFlat(arr));

你可能感兴趣的:(面试,javascript,开发语言,ecmascript)