js删除数组元素的方法

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 由于最近都在freecodecamp上刷代码,运用了很多JavaScript数组的方法,因此做了一份关于JavaS...
    2bc5f46e925b阅读 1,999评论 0 16
  • 数组的定义 数组是按序号排列的一组值,每个值的位置都有编号(从0开始)。数组本质上是一种特殊的对象。它的键名是按(...
    Allin_Lin阅读 572评论 0 0
  • 创建数组 arr.length--- title: js正则表达式categories: javascriptda...
    angelwgh阅读 1,403评论 0 2
  • var arr=['a','b','c']; 若要删除其中的'b',有两种方法:1.delete方法:delete...
    南山码农阅读 813评论 0 1
  • 面粉150g 夹心饼干35g 酵母2g 开水适量 夹心饼干,两面分开,把奶油刮掉 分别加...
    秭归橙子和水果阅读 208评论 0 2