Array flat()
flat()方法是一种内置数组方法,可将给定数组展平为新创建的一维数组。它连接给定多维数组的所有元素,并展平至指定深度。我们可以指定深度限制到需要平整数组的位置。默认情况下,深度限制为1。
语法
var newArr=arr.flat(<depth>);
参数
depth:这是一个可选参数,用于指定要展平数组的深度。默认情况下,其值为1。
返回
它返回一个新创建的数组,其中包含与其串联的所有子数组元素。
JavaScript Array flat()方法示例
让我们看下面的示例以更好地理解。
Example1
在二维数组上进行flat()方法的简单工作。
<html>
<head> <h5> Array Methods </h5> </head>
<body>
<script>
var arr=['a','b',['c','d']]; //given 2D array
var newArr=arr.flat(); //using flat() method
document.write("After flattening the array: "+newArr);
</script>
</body>
</html>
输出:
Example2
使用flat()方法测试多维数组。
<html>
<head> <h5> Array Methods </h5> </head>
<body>
<script>
var arr=[90,18,[89,56],[13,20,[67,17]]]; //given multidimensional array
var newArr=arr.flat(); //using flat() method
document.write("After flattening the array: "+newArr);
</script>
</body>
</html>
输出:
Example3
让我们将数组展平到指定的深度。
<html>
<head> <h5> Array Methods </h5> </head>
<body>
<script>
var arr=[90,18,[13,20,[67,17,[56,45]]]]; //given multidimensional array
var newArr=arr.flat(3); //using flat() method with a specified depth value.
document.write("After flattening the array: "+newArr);
</script>
</body>
</html>
输出:
Example4
使用带有深度值作为无穷大的flat()方法。
<html>
<head> <h5> Array Methods </h5> </head>
<body>
<script>
var arr=['Orange','Pineapple','Grapes',['Potato','Tomato','Carrot',['Guava','Litchi']]]; //given a multidimensional array.
var newArr=arr.flat(Infinity); //setting depth value as infinity.
document.write("After flattening the array,the new array comes out: <br> "+newArr);
</script>
</body>
</html>
输出:
Example5
我们将一个在其间具有孔的数组展平。
<html>
<head> <h5> Array Methods </h5> </head>
<body>
<script>
var arr=['John','Peter',,'Tomy',['Eni',,'Kerry']]; //given 2D array with holes in between.
var newArr=arr.flat(); //using flat() method.
document.write("After flattening the array, the holes vanishes. The new array comes out: <br> "+newArr);
</script>
</body>
</html>
输出:
很显然,在应用了flat()方法之后,所有数组元素都是串联在一起的,从而避免了孔的形成。