// 1. 递归
function b(arr) {
  const result = [];
  arr.forEach((item) => {
    if (Array.isArray(item)) {
      result.push(...b(item));
    } else {
      result.push(item);
    }
  });
  return result;
}
// 2. 尾递归
function a(arr, result) {
  arr.forEach((item) => {
    if (Array.isArray(item)) {
      result.push(...a(item, []));
    } else {
      result.push(item);
    }
  });
  return result;
}
// 3. flat API
arr.flat(Infinity);