关于JS split、splice、slice之间关系及却别作用

时间:2021-12-29 21:47:25

1、split方法 (对字符串的操作)

split()方法用于将一个字符串(string)分割成字符串数组(arr)。

split(separator, howmany)该方法包含2个参数:

separator:参数表示你将用何种方式(用什么东西)对字符串进行分割。

howmany:参数表示分割完成后你剩下几个参数。

特别提醒String.split() 执行的操作与 Arr.join() 执行的操作是相反的。

具体用法:

var str="How are you doing today?"
document.write(str.split(" ") + "<br />")//split方法切割字符串以后不包含切割的内容也就是不包含separator
document.write(str.split("") + "<br />")//若默认什么都没有则将该字符串所有内容进行切割
document.write(str.split(" ",3))//若存在第二个参数则只将切割的数组按照参数2的数值个数进行返回

How,are,you,doing,today?
H,o,w, ,a,r,e, ,y,o,u, ,d,o,i,n,g, ,t,o,d,a,y,?
How,are,you


2、splice (对数组的操作)

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

特别提醒:该方法会改变原来的数组

splice(index, howmany, item1, ..., itemX)该方法包含3个参数:

index: 必须,表示添加/删除的开始位置,若使用负数则可以从数组的末尾进行定位。

howmany: 必须,表示要删除的个数,如果设置为0,则不会删除项目。

item: 可选,表示往该数组中添加的新元素,元素之间用逗号隔开。

var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"

document.write(arr + "<br />") //打印原数组
arr.splice(2,0,"William") //从arr数组下标为2的元素开始,删除0个元素,往下标为2的元素后边添加1个元素William.

输出结果:
George,John,Thomas,James,Adrew,Martin
George,John,William,Thomas,James,Adrew,Martin


3、slice 

splice()方法可从已有的数组中返回选定的元素

特别提醒:该方法不会修改原来的数组,而是返回一个子数组,如果想删除数组中的一段元素,请使用Arr.splice().

slice(start, end)参数说明如下:

start:必须,规定从数组中的那个位置进行选取。如果是-1则从数组中的最后一位开始。

end: 可选,规定从何处选取结束,如果没有此参数则从start位置开始选取到数组中的最后一位。

var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"

document.write(arr + "<br />")
document.write(arr.slice(2,4) + "<br />") // 从数组中下表为2的位置开始,截取到下标为4的位置,所选取的内容含头不含尾。
document.write(arr)
George,John,Thomas,James,Adrew,Martin
Thomas,James
George,John,Thomas,James,Adrew,Martin


总结:

split(separator, howmany)是对字符串进行操作,将字符串按照规定的separator进行切割并返回数组,所返回的数组不包含separator项目。

splice(index, howmany, item1, ..., itemX),slice(start, end)都是对数组进行操作,区别在于:

1、splice会改变原来的数组,slice则不会。

2、splice是对数组的添加/删除进行操作,slice则是对数组进行选取并返回新数组。

3、splice可以像原数组中添加元素,slice则不会。

4、splice 从index(下标)到howmany(个数)进行删除,删除后不包含index到howmany的元素。

5、slice 从start(下标)开始选取到end(下标)结束。选取的内容包含start(下标开始)不包含end(下标结束)。

纯手打,自己实际应用中对这3个方法的简单理解,大鸟请多批评教育。