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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM