JavaScript 如何获取给定数组的已移除元素直到传递的函数返回true
JavaScript中的数组有许多方法,可以使许多操作变得容易。
在本文中,让我们看看在传递的函数返回某个值之前,不同的方法如何获取已移除的元素。让我们取一个排序好的数组,任务是移除所有小于传递给函数的限制值的元素,我们需要打印出所有已移除的元素。
以下是通过哪些方法获取给定数组的已移除元素:
- 使用 for()循环
- 使用 slice()方法
- 使用另一个数组
- 使用 array.filter()方法
方法1:使用for()循环
在这个方法中,我们将使用for循环来获取已移除的元素。我们可以应用比较函数,并在条件为true时获取已移除的值。
示例:
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
let removeArr = [];
for (let i = 0; i < arr.length; i++) {
if (arr[i] < 6) {
removeArr.push(arr.shift());
} else {
break;
}
}
console.log(removeArr);
输出
[ 1, 2, 3 ]
方法2:使用slice()方法
在一个函数中,如果有多个return语句,只有第一个return语句会被执行,函数会被完成。
示例: 在这个示例中,我们将使用slice()方法来获取给定数组中的移除元素,直到传递的函数返回true为止。
let array = [1, 2, 2, 3, 4, 5, 6, 6, 7, 8, 8, 8];
// Removing elements less than 5 and returning them
let limiter = 5;
// function which slices the array taking limiter as parameter
let retrieveRemoved = function (array, limiter) {
let i;
for (i = 0; i < array.length; i++) {
// If the number value is greater or equal than limiter
if (array[i] >= limiter) {
// It takes the array from 0th
// index to i, excluding it
return array.slice(0, i);
}
}
return array.slice(i);
}
let removed = retrieveRemoved(array, limiter);
console.log("The removed elements: " + removed);
输出
The removed elements: 1,2,2,3,4
方法3:使用另一个数组
可以使用另一个数组来检查条件。如果条件不满足,这些元素将被移除。我们将所有不满足条件的元素推入另一个数组,并返回结果数组。
示例: 在此示例中,我们将使用另一个数组来获取给定数组中的已移除元素,直到传递的函数在JavaScript中返回true。
let array = [1, 2, 2, 3, 4, 5, 6, 6, 7, 8, 8, 8];
// Removing elements less than 5 and returning them
let limiter = 5;
let retrieveRemoved = function (array, limiter) {
let i, s;
let res = [];
for (i = 0; i < array.length; i++) {
if (array[i] < limiter) {
// Push() method is used to
// values into the res[].
res.push(array[i]);
}
else {
s = i;
break;
}
}
return res;
return array.slice(i);
}
let removed = retrieveRemoved(array, limiter);
console.log("The removed elements are: " + removed);
输出
The removed elements are: 1,2,2,3,4
方法4:使用array.filter()方法
JavaScript 数组过滤器 方法用于从给定的数组中创建一个新的数组,该新数组仅包含满足参数方法设置的条件的元素。
示例:
let array = [1, 2, 2, 3, 4, 5, 6, 6, 7, 8, 8, 8];
let limiter = 5;
function retrieveRemoved(ele) {
return ele < limiter;
}
let removed =
array.filter(retrieveRemoved);
console.log("The removed elements are: " + removed);
输出
The removed elements are: 1,2,2,3,4