JavaScript使用for循环和splice删除数组指定元素的注意点
在JavaScript里可以结合for循环和splice来删除数组指定的元素。但是要注意删除元素后,数组索引会发生改变
示例
var arr = ["a","b","c","a",'a',"b"];
var ele = "a";
for(var i = 0; i < arr.length; ) {
if(arr[i] == ele) {
arr.splice(i, 1);
} else {
i++; //只有在没有删除元素时才对索引 i++
}
}
注意点:
- for循环的索引边界应该为动态的,arr.length
- 只有不是被删除元素时才对索引做偏移i++
删除数组多个元素也可以使用filter这种取巧的方式,不需要再原数组上删除元素。
var arr = ["a","b","c","a",'a',"b"]; var ele = "a"; var newarr =arr.filter(function(item){ return item!==ele);
原帖地址https://majing.io/posts/10000006121204