我需要使用 JS 的 flat 方法展平一个多维数组。这是数组 [ ["1", "0"], ["3", "5", ["8", ["10"], "11"] ], ]

时间:2021-08-01 22:50:43

标签: arrays flatten

function flatArrs(arr) {
  let output = arr
    .flat()
    .sort((a, b) => a - b);
  console.log(output);
}

flatArrs([
  ["1", "0"],
  ["3", "5", ["8", ["10"], "11"]],
]);

这是输出,所有数组都没有显示扁平......为什么? [ '0', '1', '3', '5', [ '8', [ '10' ], '11' ] ]

1 个答案:

答案 0 :(得分:0)

flat() 接受一个深度参数,指定展平的深度,默认为 1。要展平到任意深度,您可以传递 Infinity

MDN 详细介绍了许多 alternatives,包括使用 concat()、递归和生成器函数。

function flatArrs(arr) {
  let output = arr
    .flat(Infinity)
    .sort((a, b) => a - b);
  console.log(output);
}

flatArrs([
  ["1", "0"],
  ["3", "5", ["8", ["10"], "11"]],
]);