美文网首页
for循环删除小陷阱

for循环删除小陷阱

作者: 亦亦嘟嘟 | 来源:发表于2020-03-11 11:51 被阅读0次

1.场景

顺序删除当前元素

var list = ['a', 'b', 'c', 'd']
for (var i = 0; i < list.length; i++) {
  console.log(list[i])  
  list.splice(i, 1)
}
输出: a, c 并不是去a, b, c, d

2.原因

删除当前的元素,后面的元素就会顶替当前的位置,下标也会随着改变,然而我们的for循环还是在原来的基础上i++,所以就会出现上面的情况

3.解决

var list = ['a', 'b', 'c', 'd']
for (var i = 0; i < list.length; i++) {
  console.log(list[i])  
  list.splice(i, 1)
  i--
}
或者
for (var i = 0; i < list.length; i++) {
  console.log(list[i])  
  list.splice(i--, 1)
}
输出: a, b, c, d

在for循环里面i--,使它恢复到原来的位置就可有实现顺序删除元素

相关文章

  • for循环删除小陷阱

    1.场景 顺序删除当前元素 2.原因 删除当前的元素,后面的元素就会顶替当前的位置,下标也会随着改变,然而我们的f...

  • 循环遍历删除list中的某个元素

    1.增强for循环删除符合条件的多个元素 2.增强for循环删除符合条件的一个元素 3.普通for循环删除符合条件...

  • 循环制陷阱

    最近总感觉自己处在一个水生火热当中,总是患得患失,担心这个担心那个,这样的状态,很熟悉,因为没有常识过,完全安...

  • Java 列表循环删除

    一、for循环删除 输出如下,删除成功 二、foreach删除 输出如下,出现ConcurrentModifica...

  • Java中List集合去除重复数据的方法

    循环list中的所有元素然后删除重复循环list中的所有元素然后删除重复总结:两层循环,外层循环从第一个元素向最后...

  • ArrayList 循环删除

  • vector循环删除

    排序

  • Js中循环删除数组元素

    JavaScript里在for循环里splice删除数组指定元素的注意事项:需要删除多个元素时,在for循环里直接...

  • 【第7天】python全栈从入门到放弃

    1.很干的干货 1.列表不能再循环的时候删除. 因为索引会跟着改变,字典也不能直接循环删除.把要删除的内容记录在列...

  • javascript callback 循环陷阱

    callback函数的loop trap 通过循环发出多个异步执行指令(如ajax)的时候,很可能发生的一个情况是...

网友评论

      本文标题:for循环删除小陷阱

      本文链接:https://www.haomeiwen.com/subject/eosqjhtx.html