slice()和splice()是作用于數(shù)組的(字符串中也有slice)析二;split()粉洼、substring()和substr()是作用于字符串的
一、用于數(shù)組
- slice [sla?s] vt. 切片叶摄,劃分属韧,切下;
- slice()方法和splice()方法都是原生js中對數(shù)組操作的方法蛤吓。
- slice()宵喂,返回一個(gè)新的數(shù)組,不會改變原有數(shù)組会傲,該方法可從已有的數(shù)組中返回選定的元素锅棕。
它的參數(shù)只有start
是必須的!L噬健裸燎!直接到尾部
①例如:arrObject(start,end)泼疑,start是必選的德绿。規(guī)定從何處開始選取,如果是負(fù)數(shù)退渗,則是從數(shù)組元素尾部選取移稳,也就是說-1指最后一個(gè)元素,-2指倒數(shù)第二個(gè)元素氓辣;
②end是可選元素秒裕。規(guī)定從何處結(jié)束選取。結(jié)束到end的前一位钞啸;該參數(shù)沒有几蜻,表示從開始位置截取到數(shù)組末尾,如果是負(fù)數(shù)体斩,表示從數(shù)組末尾向前截取元素梭稚。該方法不會修改原數(shù)組,如果想刪除數(shù)組中某一段元素絮吵,使用splice()方法弧烤。
var a = [1,20,15,88,66,50,90]
console.log(a.slice(2,4)) // [15, 88]
console.log(a) // [1,20,15,88,66,50,90] 數(shù)組a不變
- splice vt. 捻接(兩段繩子);粘接蹬敲,膠接暇昂;
- splice()莺戒,數(shù)組中添加/刪除元素,該方法會改變原始數(shù)組急波。例如:
語法:arrayObject.splice(index,howmany,item1,.....,itemX)从铲。
它的參數(shù)index
和howmany
是必須的!3文骸名段!
①index是必選的,規(guī)定添加/刪除項(xiàng)目的位置泣懊。
②howmany必須項(xiàng)伸辟,表示刪除項(xiàng)目的個(gè)數(shù),如果為0表示不刪除元素馍刮。splice()可刪除從index開始的howmany個(gè)元素信夫,并可以用item元素替代刪除的元素。
③item可選參數(shù)卡啰,表示新添加的項(xiàng)忙迁,沒有此項(xiàng)表示不添加新項(xiàng)。
var a = [1,20,15,88,66,50,90]
console.log(a.splice(2,3)) //[15, 88, 66]
console.log(a) //[1, 20, 50, 90] 數(shù)組a被剪掉了一截碎乃,剩下另一截
二姊扔、用于字符串
- split()
- split [spl?t] vt. 分裂,分開梅誓;
- 語法:stringObject.split(separator,howmany)
-
含義:把一個(gè)字符串分割成字符串?dāng)?shù)組:
①separator:必需恰梢。字符串或正則表達(dá)式,從該參數(shù)指定的地方分割 stringObject梗掰;
②howmany:可選嵌言。該參數(shù)可指定返回的數(shù)組的最大長度。如果設(shè)置了該參數(shù)及穗,返回的子串不會多于這個(gè)參數(shù)指定的數(shù)組摧茴。如果沒有設(shè)置該參數(shù),整個(gè)字符串都會被分割埂陆,不考慮它的長度苛白。 - 注意:如果把空字符串 ("") 用作 separator,那么 stringObject 中的每個(gè)字符之間都會被分割焚虱,例如下圖中的例子购裙!
image.png
-
substring()
它的參數(shù)只有start是必須的!>樵浴躏率!
①stringObject.substring(start,stop)
方法用于提取字符串中介于兩個(gè)指定下標(biāo)之間的字符;返回的子串包括 start 處的字符,但不包括 stop 處的字符(到stop索引值前一位)。
start:必需薇芝。一個(gè)非負(fù)的整數(shù)蓬抄,規(guī)定要提取的子串的第一個(gè)字符在stringObject 中的位置;
stop:可選夯到。一個(gè)非負(fù)的整數(shù)倡鲸,字符串下標(biāo),結(jié)束符是不包括該下標(biāo)的黄娘。比如substring(0,3),那就是從下標(biāo)0開始克滴,截取到下標(biāo)為3的前一位(不包括下標(biāo)為3的那個(gè)字符)逼争;
如果不寫此項(xiàng),則返回的子串會一直到字符串的結(jié)尾劝赔。(如果從0開始截取時(shí)誓焦,那么此值可暫表示為截取的字符串的長度);
如果參數(shù) start 與 stop 相等着帽,那么該方法返回的就是一個(gè)空字符串杂伟;
參數(shù)不接受負(fù)值;
substr()
- 語法:
substr(start , length )
- 含義: substr 方法用于返回一個(gè)從指定位置開始的指定長度的子字符串
- 截取直接長度的字符串仍翰。substr(2,3)赫粥,從下標(biāo)為2開始,截取長度為3的字符串予借。而substring(2,3)越平,則是從下標(biāo)為2開始,截取到下標(biāo)為3的前一位的字符串灵迫,也就是截取1位字符秦叛。
-
slice()
與substring()
一樣
var a = 'nct wayv'
var a1 = a.substring(0,5) //start和end
var a2 = a.substr(0,2) // start和length
var a3 = a.slice(0,5) //start和end
console.log(a1,'a1') //nct w a1
console.log(a2,'a2') //nc a2
console.log(a3,'a3') //nct w a3 可見substring和slice結(jié)果是一樣的