JavaScript - Array flat() 方法



JavaScript 中的 Array.flat() 方法用于通过将嵌套数组展平到指定深度来创建新数组。扁平化数组是指通过连接所有嵌套数组或子数组将多维数组转换为一维数组。如果我们没有为此方法提供 'depth' 参数,它会将 '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;
	 	 	 // 预期输出:数组[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;
	 	 	 // 预期输出:数组[1,2,3,数组[4,数组[5,6]]]
	 	 	 animals.flat(2);
	 	 	 document.getElementById("demo2").innerHTML = result;
	 	 	 // 预期输出:数组[1,2,3,4,数组[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;
	 	 	 // 预期输出:数组[1,2,3,4,5,6]
	 	</script>
</body>
</html>

输出

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

1,2,3,4,5,6