【发布时间】:2025-12-02 00:35:01
【问题描述】:
下面的函数很好用
function filterRangeInPlace(arr, a, b) {
for (let i = 0; i < arr.length; i++) {
let val = arr[i];
// remove if outside of the interval
if (val < a || val > b) {
arr.splice(i, 1);
i--;
}
}
}
arr=[2,3,4,5,6,7,1,0,2,12,11];
filterRangeInPlace(arr,1,5);
alert(arr);
但我想用 forEach 做同样的功能
let filterRange = (arr, a, b) => {
arr.forEach((item, i) => {
val=item;debugger;
if (val < a || val > b) {
arr.splice(i, 1);
i--;
}
})
}
arr=[2,3,4,5,6,7,1,0,2,12,11];
filterRange(arr,1,5);
alert(arr);
我试过了,但我无法得到正确的答案。它不像正常的迭代那样工作。有没有其他方法可以使用相同的 foreach
【问题讨论】:
标签: javascript html arrays foreach