• JS 的 splice 与 delete 介绍


    splice

    splice(index,len,item)   

    splice() 方法用于对数组元素进行删除添加替换操作。返回值为删除的元素组成的数组

    注意:该方法会改变原始数组

    index:数组开始下标       

    len: 删除的长度 ,如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。     

    item:替换的元素,删除操作的话 item 为空( 需要在删除元素的前面插入的元素 )

    删除

    选定开始删除下标后 , 第二个参数指定删除的元素个数 ,第三个参数 为

    1. var arr = [1,2,3,4]
    2. // 只删除 1 个元素
    3. arr.splice(1,1) // [ 1, 3, 4 ]
    4. // 删除 多个元素
    5. arr.splice(1,2) // [ 1, 4 ]

     插入

    splice 方法不止可以用来删除,它属于比较全面的数组方法,同样可以进行插入操作

    如果把第二个参数设置 为 0 ,表示删除的元素个数为零 ,在指定  index(索引)  前面插入元素(如下面代码所示)

    1. var arr = [1,2,3,4]
    2. // 只插入 1 个元素
    3. arr.splice(1,0,1.5) // [ 1, 1.5, 2, 3, 4 ]
    4. // 插入多个元素
    5. arr.splice(1,0,1.5,1.6) // [ 1, 1.5, 1.6, 2, 3, 4 ]

    插入并删除

    注意 :当指定删除元素的个数大于可操作的长度,可正常执行,不会报错

    1. var arr = [1,2,3,4]
    2. // 插入且删除
    3. arr.splice(1,2,1.5) //[ 1, 1.5, 4 ]
    4. // 指定删除个数为 2 ,可操作个数为 1
    5. arr.splice(3,2,1.5) // [ 1, 2, 3, 1.5 ]

    delete

    对象属性删除

     delete可以删除对象属性

    1. // 对象属性删除
    2. function fun(){
    3. this.name = '张三';
    4. }
    5. var obj = new fun();
    6. console.log(obj.name); // 张三
    7. delete obj.name;
    8. console.log(obj.name); //undefined

    变量删除

    直接用 delelte 删除不了变量 

    1. // 变量删除
    2. var name = '张三';
    3. delete name
    4. console.log(name) //张三

     delelte  删除不了原型链中的变量

    1. function fun(){
    2. this.name = '张三';
    3. }
    4. var obj = new fun();
    5. fun.prototype.age = 18;
    6. delete obj.age;
    7. console.log(obj.age) //18

    两者的区别

    splice 方法会改变原始数组

    1. var arr = [1,2,3,4]
    2. // 删除
    3. arr.splice(1,1) // [ 1, 3, 4 ]

     delete 操作后被删除的元素变成了 <1 empty item> ,其他的元素的键值还是不变。

    1. var arr = [1,2,3,4]
    2. delete arr[1]
    3. console.log(arr) // [ 1, <1 empty item>, 3, 4 ]

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

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

  • 相关阅读:
    Redis(9)----RDB文件结构
    从零开始学Spring Boot系列-集成mybatis
    matlab相机标定实验
    济南双软认定办理流程,软件企业认定申报材料
    JUC源码笔记
    基于springboot+vue的电动车实名制挂牌管理系统 elementui
    无人机设计仿真--在Isight平台上进行的基于CST参数化+Xfoil的无人机翼型优化
    bootstrapTable jqGrid使用总结
    低代码会使初级码农失业吗?
    什么是负载均衡集群?
  • 原文地址:https://blog.csdn.net/qq_52855464/article/details/126455060