zoukankan      html  css  js  c++  java
  • 【js知识】splice()实现数组的添加、删除、替换


    splice 方法一个数组中最强大的方法,不仅可以对数组进行元素对添加,对数组元素对删除,对数组元素的替换,可以说它集百家与一身,它会直接修改原数组,返回删除的元素。

    那么我们就来好好的看看它是如何进行数组的添加、删除与替换工作。

    splice 方法的参数传入数量不的不同形成的效果也会不同。

    首先它接受三个参数或甚至更多,除了开始位置索引 start 参数以外,其余全是可选参数。

    //语法
    array.splice(start, count, item1, item2, ...)
    

    start:删除数组元素的开始索引(必须)
    count:需要删除元素的个数
    item1,item2…:插入数组的元素

    一、删除数组

    传递一个参数的时候,数组会删除从给定的索引到数组结束的所有元素,原数组会被修改,返回删除的数组

    //删除元素
    const numbers = [1, 2, 3, 4, 5];
    const removes = numbers.splice(2);
    console.log(numbers); //[1, 2]
    console.log(removes); //[3, 4, 5]
    

    如何删除指定个数的数组?如我们只想删除第6个元素等等…
    我们添加第二个参数 count 即可,元素的索引是从0开始,也就是说 start 参数是从 0 开始的。

    //删除第6个元素
    const numbers = [1, 2, 3, 4, 5, 6, 7, 8];
    const removes = numbers.splice(5, 1);
    console.log(numbers); //[1, 2, 3, 4, 5, 7, 8]
    console.log(removes); //[6]
    
    //删除第6,7位两个元素
    const numbers = [1, 2, 3, 4, 5, 6, 7, 8];
    const removes = numbers.splice(5, 2);
    console.log(numbers); //[1, 2, 3, 4, 5, 8]
    console.log(removes); //[6, 7]
    

    二、添加数组

    如何添加一个元素,这会就要用到我们的第三个参数或者第四个,第五个等等,依次添加即可。

    //指定在某个位置添加一个元素
    const numbers = [1, 2, 3, 4, 5];
    const removes = numbers.splice(2, 0, 'F');
    console.log(numbers); //[1, 2, "F", 3, 4, 5]
    console.log(removes); //[]
    
    //指定在某个位置添加多个元素
    const numbers = [1, 2, 3, 4, 5];
    const removes = numbers.splice(2, 0, 'A', 'B', 'C');
    console.log(numbers); //[1, 2, "A", "B", "C", 3, 4, 5]
    console.log(removes); //[]
    

    因为不对数组进行任何的删除项,然后又在数组中插入一些元素,实现的数组的添加

    三、替换数组元素

    替换的思路与删除仅仅多了一步把要插入掉位置元素给删除掉。

    //替换第2,3位的元素
    const numbers = [1, 2, 3, 4, 5];
    const removes = numbers.splice(2, 2, 'A', 'B');
    console.log(numbers); //[1, 2, "A", "B", 5]
    
    console.log(removes); //[3, 4]
    

    原文:https://www.cnblogs.com/beevesnoodles/p/9667303.html

  • 相关阅读:
    《硅谷之谜》读书笔记
    Google的Bigtable学习笔记(不保证正确性)
    软件开发到底是怎么一回事呢?
    如何控制自己之2016个人目标管理
    如何自适应网页的协议(http/https/……)
    数据库时间戳设计
    AngularJS-Controller的使用-读书笔记
    FIM相关报错汇总
    iPad上的Cookie到底有多长?
    【solr】join查询,跟mysql的join不一样
  • 原文地址:https://www.cnblogs.com/hellocd/p/14271648.html
Copyright © 2011-2022 走看看