js数组,在遍历中删除元素(用 for (var i in arr)是无效的 )

 1 /**
 2  * 有效的方式 - 改变下标,控制遍历
 3  */
 4 for (var i = 0; i < arr.length; i++) {
 5   if (...) {
 6     arr.splice(i, 1); // 将使后面的元素依次前移,数组长度减1
 7     i--; // 如果不减,将漏掉一个元素
 8   }
 9 }
10 
11 /**
12  * 无效的方式 - for .. in 无法控制遍历
13  */
14 for (var i in arr) {
15   if (...) {
16     arr.splice(i, 1); // 将使后面的元素依次前移,数组长度减1
17     i--; // 没有效果,怎么都会漏掉一个元素
18   }
19 }

 

posted @ 2018-07-17 13:10  一粒小米-博客  阅读(686)  评论(0编辑  收藏  举报