1. 程式人生 > >JavaScript使用for迴圈和splice刪除陣列指定元素的注意點

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