for循环数组移除元素

使用for循环数组删除元素,原本的写法是

for (let i = 0; i < array.length; i++) {
const element = array[i];
 if (element.objectType === 'object') {
   array.splice(i, 1)
 }
}

但是这样的写法是有问题的,因为每次删除一个时候数组的长度就会-1,因此删除的也就不是当前位置的数据了,
修改方法可以反过来写循环,从后往前删

for (var i = array.length-1;i >= 0 ;i--) {
   if (element.objectType === 'object') {
	   array.splice(i, 1)  // length会减一
	 }
}

亲测有用,大家可以试一下
参考文章
https://www.cnblogs.com/milicool/p/8186599.html
https://blog.csdn.net/a_salt_fish/article/details/87905602

你可能感兴趣的:(for循环数组移除元素)