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
廣告