JavaScript array.flat()方法
flat()方法是一个内置的数组方法,它将一个给定的数组展平成一个新创建的一维数组。它将给定的多维数组的所有元素连接起来,并平铺到指定的深度。我们可以指定展平数组的深度限制。默认情况下,深度限制为1。
语法
var newArr=arr.flat(<depth>);
参数
深度: 这是一个可选参数,用于指定数组扁平化的深度。默认情况下,其值为1。
返回值
它返回一个新创建的数组,其中包含所有子数组元素的连接。
JavaScript Array flat()方法示例
让我们看下面的示例来更好地理解。
示例1
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>
输出:
示例2
使用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>
输出:
很明显,数组中的每个元素都被连接到新创建的一维数组中。
示例3
让我们把一个数组扁平化到指定的深度。
<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>
输出结果:
示例4
使用 depth 值为无穷大的 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>
输出:
示例5
让我们展平一个中间有空洞的数组。
<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()方法后,所有的数组元素都被连接在一起,省略掉了空洞。