js数组,在遍历中删除元素
复制代码
/**
- 有效的方式 - 改变下标,控制遍历
*/
for (var i = 0; i < arr.length; i++) {
if (…) {
arr.splice(i, 1); // 将使后面的元素依次前移,数组长度减1
i–; // 如果不减,将漏掉一个元素
}
}
/**
- 无效的方式 - for … in 无法控制遍历
*/
for (var i in arr) {
if (…) {
arr.splice(i, 1); // 将使后面的元素依次前移,数组长度减1
i–; // 没有效果,怎么都会漏掉一个元素
}
}