拼接删除重复的数组值不起作用javascript

无霜

这是我的代码

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]

TJ克劳德

这是因为您删除了索引 0 处的条目,然后移至i1。但现在索引 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章