splice(index,len,item)
splice() 方法用于对数组元素进行删除添加替换操作。返回值为删除的元素组成的数组。
注意:该方法会改变原始数组。
index:数组开始下标
len: 删除的长度 ,如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。
item:替换的元素,删除操作的话 item 为空( 需要在删除元素的前面插入的元素 )
选定开始删除下标后 , 第二个参数指定删除的元素个数 ,第三个参数 为空
var arr = [1,2,3,4]
// 只删除 1 个元素
arr.splice(1,1) // [ 1, 3, 4 ]
// 删除 多个元素
arr.splice(1,2) // [ 1, 4 ]
splice 方法不止可以用来删除,它属于比较全面的数组方法,同样可以进行插入操作,
如果把第二个参数设置 为 0 ,表示删除的元素个数为零 ,在指定 index(索引) 前面插入元素(如下面代码所示)
var arr = [1,2,3,4]
// 只插入 1 个元素
arr.splice(1,0,1.5) // [ 1, 1.5, 2, 3, 4 ]
// 插入多个元素
arr.splice(1,0,1.5,1.6) // [ 1, 1.5, 1.6, 2, 3, 4 ]
注意 :当指定删除元素的个数大于可操作的长度,可正常执行,不会报错
var arr = [1,2,3,4]
// 插入且删除
arr.splice(1,2,1.5) //[ 1, 1.5, 4 ]
// 指定删除个数为 2 ,可操作个数为 1
arr.splice(3,2,1.5) // [ 1, 2, 3, 1.5 ]
delete可以删除对象属性
// 对象属性删除
function fun(){
this.name = '张三';
}
var obj = new fun();
console.log(obj.name); // 张三
delete obj.name;
console.log(obj.name); //undefined
直接用 delelte 删除不了变量
// 变量删除
var name = '张三';
delete name
console.log(name) //张三
delelte 删除不了原型链中的变量
function fun(){
this.name = '张三';
}
var obj = new fun();
fun.prototype.age = 18;
delete obj.age;
console.log(obj.age) //18
splice 方法会改变原始数组
var arr = [1,2,3,4]
// 删除
arr.splice(1,1) // [ 1, 3, 4 ]
delete 操作后被删除的元素变成了 <1 empty item> ,其他的元素的键值还是不变。
var arr = [1,2,3,4]
delete arr[1]
console.log(arr) // [ 1, <1 empty item>, 3, 4 ]
文章如有错误,恳请大家提出问题,本人不胜感激 。 不懂的地方可以评论,我都会 一 一 回复
文章对大家有帮助的话,希望大家能动手点赞鼓励,大家未来一起努力 长路漫漫,道阻且长