如何在 JavaScript 中移除陣列元素,直到傳入的函式返回 true?


JavaScript 中,有多種方法可以移除陣列元素,直到傳入的函式返回 true。在本教程中,我們將詳細介紹三種方法。

使用 Array.prototype.filter()

Array.prototype.filter() 方法可以用來移除陣列元素,直到傳入的函式返回 true。更多詳情,請參考 Array filter() 方法。

示例 1

以下程式碼演示瞭如何使用此方法:

<html>
<head>
   <title>Examples</title>
</head>
<body>
   <div id="array"></div>
   <div id="result"></div>
   <script>
      var arr = [1,2,3,4,5,6,7,8,9,10];
      function remove(item) {
         return item < 5;
      }
      var newArr = arr.filter(remove);
      document.getElementById("array").innerHTML = "Array: " + arr;
      document.getElementById("result").innerHTML = "Removed Elements: " + newArr;
   </script>
</body>
</html>

正如你所看到的,我們建立了一個包含 1 到 10 的數字的陣列。然後我們使用 filter() 方法移除所有小於 5 的元素。最後,我們顯示了移除元素後的新陣列。

使用 for 迴圈

另一種方法是在傳入的函式返回 true 之前移除陣列元素,就是使用 for 迴圈。

示例 2

以下程式碼演示瞭如何使用此方法:

<!doctype html>
<html>
<head>
   <title>Examples</title>
</head>
<body>
   <div id="result"></div>
   <script>
      var arr = [1,2,3,4,5,6,7,8,9,10];
      var newArr = [];
      for(var i=0; i < arr.length; i++) {
         if(arr[i] < 5) {
            newArr.push(arr[i]);
         } else {
            break;
         }
      }
      document.getElementById("result").innerHTML = newArr
   </script>
</body>
</html>

正如你所看到的,我們再次建立了一個包含 1 到 10 的數字的陣列。然後我們使用 for 迴圈迭代陣列中的每個元素。如果當前元素小於 5,我們將其新增到新陣列中。否則,我們退出迴圈。最後,我們顯示了新陣列。

使用 Array.prototype.slice()

另一種方法是在傳入的函式返回 true 之前移除陣列元素,就是使用 Array.prototype.slice() 方法。更多詳情,請參考 array slice 方法。

示例 3

以下程式碼演示瞭如何使用此方法:

<!doctype html>
<html>
<head>
   <title>Examples</title>
</head>
<body>
<div id="result"></div>
<script>
     var arr = [1,2,3,4,5,6,7,8,9,10];
     var newArr = arr.slice(0,5);
     document.getElementById("result").innerHTML = newArr
</script>
</body>
</html>

正如你所看到的,我們再次建立了一個包含 1 到 10 的數字的陣列。然後我們使用 slice() 方法從陣列中提取前 5 個元素。最後,我們顯示了新陣列。

更新於:2022年7月1日

瀏覽量:387

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.