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++
  }
}

注意点:

  1. for循环的索引边界应该为动态的,arr.length
  2. 只有不是被删除元素时才对索引做偏移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
posted @ 2018-11-17 21:51  郑家好人  阅读(3381)  评论(0编辑  收藏  举报