JavaScript 控制流、表达式与运算符深度解析
1. 从数组中移除质数
在处理数组时,我们可能会遇到需要移除特定元素的情况,比如从一个大数组 bigArrayOfNumbers 中移除所有的质数。我们可以使用 splice 方法来实现这一操作, splice 方法可以用于向数组中添加或移除元素。
下面是一个看似可行但实际存在问题的代码示例:
for(let i=0; i<bigArrayOfNumbers.length; i++) {
if(isPrime(bigArrayOfNumbers[i])) bigArrayOfNumbers.splice(i, 1);
}
这个代码存在的问题是,由于索引 i 是递增的,当我们移除元素时,可能会跳过相邻的质数。为了解决这个问题,我们可以使用递减的索引:
for(let i=bigArrayOfNumbers.length-1; i >= 0; i--) {
if(isPrime(bigArrayOfNumbers[i])) bigArrayOfNumbers.splice(i, 1);
}
需要注意的是,我们必须从数组长度减 1 开始,因为数组的索引是从 0 开始的。并且,只要 i 大于或等于 0,循环就会继续;否则,这个循
超级会员免费看
订阅专栏 解锁全文
12

被折叠的 条评论
为什么被折叠?



