JavaScript
常见代码片段
Flatarray
type Flatten<T> = T extends [infer F, ...infer R]
  ? F extends any[]
    ? Flatten<[...F, ...R]>
    : [F, ...Flatten<[...R]>]
  : T;
const arr = [1, 2, [3, 4, [5, 6, [7]], [8], [9], 10], 11];
 
function flat(arr) {
  const list = [];
  arr.forEach((i) => {
    if (Array.isArray(i)) {
      list.push(flat(i).slice());
    } else {
      list.push(i);
    }
  });
  return list;
}
 
console.log(flat(arr));
console.log(arr.flat(Infinity));
// [
//    1, 2, 3, 4,  5,
//    6, 7, 8, 9, 10,
//   11
// ]