JS 的 splice 与 delete 介绍

splice

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

对象属性删除

 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 ]

文章如有错误,恳请大家提出问题,本人不胜感激 。 不懂的地方可以评论,我都会 一 一 回复

文章对大家有帮助的话,希望大家能动手点赞鼓励,大家未来一起努力     长路漫漫,道阻且长

你可能感兴趣的:(JS,javascript,前端,java)