在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