JavaScript - Array flat() 方法



JavaScript 中的Array.flat() 方法用于创建一个新数组,该数组通过将嵌套数组展平到指定的深度来创建。展平数组意味着通过连接所有嵌套数组或子数组,将多维数组转换为一维数组。如果我们没有为此方法提供“深度”参数,它将把“1”作为默认深度值。

JavaScript Array.flat() 方法返回一个新的展平数组,而不是更改或修改原始数组。此方法还会删除数组中的空元素槽。

语法

以下是 JavaScript Array flat() 方法的语法:

array.flat(depth);

参数

此方法只接受一个参数。如下所述:

  • depth(可选)指定应展平原始数组中嵌套数组的深度。默认情况下,深度值为 1。

返回值

此方法返回一个新数组,其中所有子数组元素都连接到其中,直到指定的深度。

示例

示例 1

在下面的示例中,指定的 animal 数组包含一个子数组。我们没有为此函数的 depth 参数传递任何值。结果,它展平了 animals 数组中的子数组。

<html>
<body>
   <p id="demo"></p>
   <script>
      const animals = [1, 2, 3, 4, [5, 6]];
      const result = animals.flat();
      document.getElementById("demo").innerHTML = result;
      //Expected Output: Array [1, 2, 3, 4, 5, 6]
   </script>
</body>
</html>

输出

正如我们看到的输出,数组已被展平。

1,2,3,4,5,6

示例 2

animals 数组中有三个子数组。首先,我们没有为 flat() 方法传递任何参数,因此执行此操作后将有两个子数组。其次,我们传递了 2 作为参数,因此执行此操作后将只有一个子数组。

<html>
<body>
   <p id="demo"></p>
   <script>
      const animals = [1, 2, [3, [4, [5, 6]]]];
      const result = animals.flat();
      document.getElementById("demo1").innerHTML = result;
      //Expected Output: Array [1, 2, 3, Array [4, Array [5, 6]]]
      animals.flat(2);
      document.getElementById("demo2").innerHTML = result;
      //Expected Output: Array [1, 2, 3, 4, Array [5, 6]]]
   </script>
</body>
</html>

示例 3

在这里,我们将“Infinity”作为参数传递给 flat() 方法。结果,它展平了 animals 数组中存在的所有子数组:

<html>
<body>
   <p id="demo"></p>
   <script>
      const animals = [1, 2, [3, [4, [5, 6]]]];
      const result = animals.flat(Infinity);
      document.getElementById("demo").innerHTML = result;
      //Expected Output: Array [1, 2, 3, 4, 5, 6]
   </script>
</body>
</html>

输出

执行程序后,animals 数组中的所有子数组都已展平。

1,2,3,4,5,6
广告