站长资讯网
最全最丰富的资讯网站

javascript splice方法怎么用

javascript splice()方法可以用于删除指定数量的元素、替换指定元素以及在指定位置添加元素,使用语法“array.splice(index,count,item1,…..,itemX)”。

javascript splice方法怎么用

本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。

javascript splice方法

在javascript中,splice() 方法用于添加或删除数组中的元素。

语法:

array.splice(index,count,item1,.....,itemX)
参数 描述
index 必需。规定从何处添加/删除元素。
该参数是开始插入和(或)删除的数组元素的下标,必须是数字。
coun 可选。规定应该删除多少元素。必须是数字,但可以是 "0"。
如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。
item1, …, itemX 可选。要添加到数组的新元素

splice() 方法功能比较强,它可以实现删除指定数量的元素、替换指定元素以及在指定位置添加元素。这些不同功能的实现需要结合方法参数来确定:

  • 当参数只有 index 和 count 两个参数时,如果 count 不等于 0,splice() 方法实现删除功能,同时返回所删除的元素:从 index参数指定位置开始删除 count 参数指定个数的元素;

  • 当参数为 3 个以上,且 count 参数不为0时,splice() 方法实现替换功能,同时返回所替换的元素:用第三个及其之后的参数替换 index 参数指定位置开始的 count 参数指定个数的元素;

  • 当参数为 3 个以上,且 count 参数为 0 时,splice() 方法的实现添加功能:用第三个及其之后的参数添加到 index 参数指定位置上。

返回值:数组类型;如果从 array 中删除了元素,则返回的是含有被删除的元素的数组。

splice() 方法实现的各个功能示例如下:

① 使用 splice() 从指定位置删除指定个数的元素:

var arr = ['A','B','C','D']; //2个参数,第二个参数不为 0,实现删除功能 alert(arr.splice(0,2)); alert(arr);  //返回C,D

② 使用 splice() 用指定元素替换从指定位置开始的指定个数的元素:

var arr = ['A','B','C','D']; //3个参数,第二个参数不为 0,实现替换功能:用 a 替换掉 A,返回:A alert(arr.splice(0,1,'a')); alert(arr);  //返回:a,B,C,D alert(arr.splice(0,2,'a or b'));//用a or b替换掉a和B,返回a,B alert(arr);  //返回:a or b,C,D

③ 使用 splice() 在指定位置添加指定的元素:

var arr = ['A','B','C','D']; //4个参数,第二个参数为 0,实现添加功能:在下标为 1 处添加 aaa,bbb,没有返回值 alert(arr.splice(1,0,'aaa','bbb')); alert(arr);//返回:A,aaa,bbb,B,C,D

示例:使用 splice() 方法实现数组去重。

<!doctype html> <html> <head> <meta charset="utf-8"> <title>使用splice方法实现数组去重</title> <script>      var arr = [1,2,2,2,4,2];      for(var i = 0; i < arr.length; i++){          for(var j = i + 1; j < arr.length; j++){               if(arr[i] == arr[j]){                   arr.splice(j,1);//删除 j 位置处的元素                   j--;               }          }      }      alert(arr);//返回1,2,4三个元素 </script> </head> <body> </body> </html>

上述代码使用了具有两个参数的 splice(),实现了删除指定元素的功能。

javascript splice方法怎么用

赞(0)
分享到: 更多 (0)
网站地图   沪ICP备18035694号-2    沪公网安备31011702889846号