有趣的面试题

154 阅读1分钟

数组扁平化

1 最简单的就是ES6的flat

const arr = [[12], [34], [56]];

console.log(arr.flat());

2 使用循环遍历反复处理数组


let res = [1, [6], [7, 8, [56]]];

while (res.some((item) => Array.isArray(item))) {
  res = [].concat(...res);
}

3 相当于flat的实现


let result = [];
const mflat = (array) => {
  for (let index = 0; index < array.length; index++) {
    const item = array[index];

    if (Array.isArray(item)) {
      mflat(item);
    } else {
      result.push(item);
    }
  }
};

mflat(arr);
console.log(result, "000");