JavaScript - Array filter() 方法



在 JavaScript 中,Array.filter() 方法用於建立一個包含透過特定條件的元素的新陣列。它接受一個回撥函式作為引數,該函式將對陣列中的每個元素執行。如果回撥函式返回 true,則該元素將新增到新陣列中;否則,它將被過濾掉。

此方法不會更改或修改原始陣列。此外,它不會對空元素執行回撥函式。

語法

以下是 JavaScript Array filter() 方法的語法:

array.filter(callbackFn (element, index, array), thisArg);

引數

此方法接受兩個引數。具體描述如下:

  • callbackfn −這是一個回撥函式,將為陣列中的每個元素呼叫一次。它進一步接受三個引數
    • element −陣列中正在處理的當前元素。
    • index −正在處理的當前元素的索引。
    • array −當前元素的陣列。
  • thisArg (可選) −它指定一個傳遞給函式的值,用作其this值。

返回值

此方法返回一個新陣列,其中包含回撥函式返回 true 的元素。

示例

示例 1

在下面的示例中,提供的回撥函式檢查“numbers”陣列中的每個元素,並返回一個新陣列“result”,其中包含所有大於 30 的元素。

<html>
<body>
   <script>
      const numbers = [10, 20, 30, 40, 50];

      const result = numbers.filter(function (number) {
         return number > 30;
      });
      document.write(result);
   </script>
</body>
</html>

輸出

40,50

示例 2

這裡,提供的回撥函式檢查陣列中的每個元素是否包含字母“a”。

<html>
<body>
   <script>
      const animals = ['Lion', 'Cheetah', 'Tiger', 'Elephant', 'Dinosaur'];

      const result = animals.filter(function (element) {
         return element.includes('a');
      });
      document.write(result);
   </script>
</body>
</html>

輸出

Cheetah,Elephant,Dinosaur

示例 3

在這個例子中,我們檢查每個年齡是否大於或等於 18。

<html>
<body>
   <script>
      const ages = [18, 25, 13, 16, 22, 15];

      const result = ages.filter(function (age) {
         return age >= 18;
      });
      document.write(result);
   </script>
</body>
</html>

輸出

18,25,22
廣告