今天同事在处理js删除数组的时候,遇到了一个疑惑,趁着今天就分析一下,删除数组元素的几种方法,欢迎大家指导啊
1. length,此方法可取性不大
eg:
var a=[1,2,3,4,5];
a.length=3;
console.log(a)//[1,2,3]
通过缩减数组长度来删除数组,利弊关系一看便知
2.delete方法
eg:
var a=[1,2,3];
delete a[1];
alert(a.length) //3
alert(a[1]); //undefined
由此可知delete操作并不影响数组长度,被删除元素的位置依然被占据。
//2 in a //false
3.Array.splice()
splice()在数组中插入或删除元素,splice()会对原数组进行修改
splice(index,howmany,item1,.....,itemX)
参数
描述 | |
---|---|
index | 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。 |
howmany | 必需。要删除的项目数量。如果设置为 0,则不会删除项目。 |
item1, ..., itemX | 可选。向数组添加的新项目。 |
splice() 方法可删除从 index 处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素
eg:
var a=[1,2,3];
a.splice(1,1);
alert(a); //[1,3]
var a=[1,2,3];
a.splice(1,0,7);
alert(a); //[1,7,3,2]
var a=[1,2,3];
a.splice(1,1,7);
alert(a); //[1,7,3]
当然还有别的方法,就不介绍了