如何在 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

开启你的职业生涯

完成课程获得认证

开始学习
广告