js删除数组元素的方法
2017-04-08 本文已影响451人
辉夜乀
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
优点:原数组的索引保持不变,其他元素键名保持不变。
缺点:原数组中有 undefined
元素。
此时要遍历数组元素可以采用for...in
循环
for(var i in arr){
console.log(arr[i]);
}
// a c
// for...in 循环遍历数组会跳过 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方法删除元素,数组长度改变,删除的元素不保留
优点:原数组中没有 undefined 的元素。
缺点:原数组的索引改变,其他元素的键名改变。
此时要遍历数组元素可以采用for...in循环
for(var i in arr){
console.log(arr[i]);
}
// a c