• JavaScript中的 函数splice() 的使用。


      大二接触JavaScript初期,学习函数中有一道题:

    定义一个2个参数的函数。第1个参数是一个数组,第2个参数是需要删除的元素。函数功能,在第1个实参数组中查找第2个实参提供的值,找到则删除该元素(有几个删除几个),如果删除的元素不是最后一个元素,需要把后边的元素依次向前移动。输出删除前后形参数组和实参数组中的所有元素。实参数组【3,78,34,123,4,5,66,34,55】,删除34。

      在规定的数组里的查找与删除,有点类似于C语言中的指针。

     1 <!DOCTYPE html>
     2 <html>
     3 <head>
     4 
     5 <title>测试</title>
     6 <script>
     7     function delArr(arr,x){
     8         var i=arr.length;
     9         while(i--){
    10             if(arr[i]==x){
    11                 arr.splice(i,1);
    12                 return arr;
    13             }
    14         }
    15     }
    16     var arr=[3,78,34,123,4,5,66,34,55];
    17     alert(arr);
    18     alert(delArr(arr,34));
    19     
    20     
    21 </script>
    22 </head>
    23 
    24 <body>
    25 
    26 </body>
    27 
    28 </html>

    js  splice() 

    定义和用法

    splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。

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

     

    在javascript中splice()方法有如下3种方式:

    删除——可以删除任意数量的项,只需要指定2个参数:要删除的第一项的位置和要删除项的项数。

    例如,splice(0,2)    会删除数组中的前两项。

    插入——可以向指定位置插入任意数量的项,只需要提供3个参数:插入起始位置、0(要删除的项数)和要插入的项。 如果要插入多个项,可以再传入第四、第五,一直任意多个项。

    例如,splice(2,0,”red”,”green”)  会从位置2开始插入字符串“red”和”green”。

    替换——即删除和插入数量相等项数的综合应用,可以指向指定位置插入任意数量的项,且同时删除任意数量的项,只需要指定3个指定参数:起始位置、要删除的项数和要插入的任意数量项。 插入的项数是不必与删除的项数相等。

    提示和注释

    注释:请注意,splice() 方法与 slice() 方法的作用是不同的,splice() 方法会直接对数组进行修改。

    举例:

     1 <script>
     2 var colors = ["red", "green", "blue"];
     3 var removed = colors.splice(0,1);  //删除第一项
     4 alert(colors);  //green,blue
     5 alert(removed);  //red,返回数组中值包含一项
     6 
     7 removed = colors.splice(1, 0, "yellow", "orange");  //从位置1开始插入两项
     8 alert(colors);  //green,yellow,organge,blue
     9 alert(removed);  //返回的是一个空数组
    10 
    11 removed = colors.splice(1, 1, "red", "purple");  //插入两项,删除一项
    12 alert(colors);  //green,red,purple,orange,blue
    13 alert(remove);  //yellow, 返回的数组中只包含一项
    14 </script>

     

     

    参考来源:http://www.cnblogs.com/pumushan/p/5507862.html

  • 相关阅读:
    彻底完全地被LINQ(2sql以及C#3.0里的一些语法)雷到了
    Windows界面设计标准
    对于大型公司项目平台选择j2ee的几层认识(四)
    用C#开发TUXEDO客户端
    提醒一下:XmlSerializer的效率比BinaryFormatter高!
    xml, oop, 云计算、web service,敏捷开发
    做了一个简单的DLINQ性能测试
    项目组的文档作风.
    RHEL 6和RHEL 7(CentOS 6和CentOS 7)恢复ROOT密码
    mysql修改root密码
  • 原文地址:https://www.cnblogs.com/liumce/p/7635359.html
Copyright © 2020-2023  润新知