var arr=['a','b','c'];
若要刪除其中的'b',有兩種方法:
1. delete 方法
delete arr[1] 刪除了數組arr中的第二個元素'b',但是數組的長度不變,arr[1]變成了undefined
var arr = ['a', 'b', 'c'];
delete arr[1];
console.log(arr); // ["a", undefined × 1, "c"]
console.log(arr.length); // 3
// delete方法刪除數組元素,長度不變,刪除的位置變成 undefined
優(yōu)點:原數組的索引保持不變,其他元素鍵名保持不變。
缺點:原數組中有 undefined 元素。
此時要遍歷數組元素可以采用for...in循環(huán)
for(var i in arr){
console.log(arr[i]);
}
// a c
// for...in 循環(huán)遍歷數組會跳過 undefined 元素
** 該方式IE4.o以后都支持了**
2. splice方法
arr.splice(1,1),括號中的第一個參數 1 表示,找到下標 1 的元素arr[1],第二個參數 1 表示,從該元素起刪除的元素個數。
var arr = ['a', 'b', 'c'];
arr.splice(1,1);
console.log(arr); // ["a", "c"]
console.log(arr.length); // 2
// splice方法刪除元素,數組長度改變,刪除的元素不保留
優(yōu)點:原數組中沒有 undefined 的元素。
缺點:原數組的索引改變,其他元素的鍵名改變。
此時要遍歷數組元素可以采用for...in循環(huán)
for(var i in arr){
console.log(arr[i]);
}
// a c