这是我的代码
var numbers = [14, 14, 16, 25];
for (var i = 0; i < numbers.length; i++){
if (numbers[i] === 14)
numbers.splice(i,1)
}
我想删除数组中的所有“14”。
此方法只是删除一个重复值并将数组返回为 [14,16,25]。但我希望它是 [16,25]
这是因为您删除了索引 0 处的条目,然后移至i
1。但现在索引 0 处的条目也是 14。您已经跳过了它。
要么向后工作,要么i
在删除条目时不增加(要么修改现有数组);或通过filter
.
倒退:
var numbers = [14, 14, 16, 25];
for (var i = numbers.length - 1; i >= 0; i--) {
if (numbers[i] === 14) {
numbers.splice(i,1);
}
}
console.log(numbers);
i
删除条目时不增加:
var numbers = [14, 14, 16, 25];
var i = 0;
while (i < numbers.length) {
if (numbers[i] === 14) {
numbers.splice(i,1);
} else {
++i;
}
}
console.log(numbers);
通过filter
以下方式创建新数组:
var numbers = [14, 14, 16, 25];
numbers = numbers.filter(function(value) { return value != 14; });
console.log(numbers);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句