饥人谷技术博客

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
上一篇 下一篇

猜你喜欢

热点阅读