如何从数组中删除元素,直到传递的函数在 JavaScript 中返回 true?

在 JavaScript 中,有多种方法可以从数组中删除元素,直到传递的函数返回 true。在本教程中,我们将详细介绍 3 个方法。
使用 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 循环。
< h2>示例 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() 方法。详细请参考数组切片方法。
示例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 个元素。最后,我们显示了新的数组。
javascript