js中slice(),splice(),split(),substring(),substr()的使用方法和區別


1.slice();

Array和String對象都有

在Array中  slice(i,[j]) 

 

i為開始截取的索引值,負數代表從末尾算起的索引值,-1為倒數第一個元素
j為結束的索引值,缺省時則獲取從i到末尾的所有元素

參數返回:
返回索引值從i到j的數組,原數組不改變

在String中 slice(i,[j])

參數說明:
i為開始截取的索引值,負數代表從末尾算起的索引值,-1為倒數第一個字符
j為結束的索引值,缺省時則獲取從i到末尾的所有字符

 

2.splice()

存在Array中     方法向/從數組中添加/刪除項目,然后返回被刪除的項目。 該方法會改變原始數組

splice(index,howmany,item1,itemx )

index : 必需。整數,規定添加/刪除項目的位置,使用負數可從數組結尾處規定位置。

howmany: 必需。要刪除的項目數量。如果設置為 0,則不會刪除項目。

item1...itemX : 可選。向數組添加的新項目。

返回值  Array  包含被刪除項目的新數組,如果有的話。

 

3.split()

在String中 split(separator,howmany)

separator:必需。字符串或正則表達式,從該參數指定的地方分割 stringObject。

howmany: 可選。該參數可指定返回的數組的最大長度。如果設置了該參數,返回的子串不會多於這個參數指定的數組。如果沒有設置該參數,整個字符串都會被分割,不考慮它的長度。

 

返回值

一個字符串數組。該數組是通過在separator指定的邊界處將字符串StringObject分割成子串創建的。返回的數組的字符串不包含separator自身

但是,如果 separator 是包含子表達式的正則表達式,那么返回的數組中包括與這些子表達式匹配的字串(但不包括與整個正則表達式匹配的文本)

與jion()函數相反效果

4.substring()

在String中  substring(start,stop)

start:表示子字符串的開始位置,

stop:表示結束結果。

注意:第二個參數應該大於第一個參數。如果出現第一個參數大於第二個參數的情況,substring方法會自動更換兩個參數的位置。 

5.substr()

在String中,substr(start,length);

start:子字符串的開始位置,

length:子字符串的長度。

 

 

 

 

 

         不知道大家對slice,splice,splite是腫么樣的感覺,反正我剛接觸到這三個函數的時候整個人都懵了,因為一個個長的跟孿生兄弟似的,每次用的時候都會混,於是決定記下來,也給大家當個參考吧。

  1. slice  :

    定義:接收一個或兩個參數,它可以創建一個由當前數組中的一項或多項組成的新數組,注意是新數組哦~ 也就是說它不會修改原來數組的值。 

     用法:slice( para1 ),會截取從para1開始的到原數組最后的部分;

        slice(para1,para2)會截取原數組的從para1開始的para2-para1個數組。 

     注意:當兩個參數中存在負數時,用原數組的長度加上兩個負數的參數作為相應的參數來計算。

 

  2.  splice  :

       定義:強大的數組操作方法

用法 : splice( para1,para2 ) : 刪除數組中任意數量的項,從para1開始的para2項。注意的是用splice刪除數組中的值會直接將某幾項從數組中完全刪除,會導致數組length值的改變,這與delete的刪除置為undefined是不一樣的。

 splice( para1,para2,val1,val2… ):項數組中添加和刪除項,para1表示可以添加的項數,para2表示刪除的項數,后面的變量表示要添加的項的值,注 意是從para1之后開始刪除和添加的。

    注意 : 參數為負數的問題,如果para1為負數,則會加上數組的長度作為para1的值,而para2為負數或0的話不會執行刪除操作。

 

  3.split : 根據特定的字符切割字符串並且返回生成的數組。

                   例如 : str = “s-aaa-sss-eee-www”;

                            targetArr = str.slite(“-”);    //[‘s’,’aaa’,’sss’,’eee’,’www’]

 

  現在看看其實這三位長相相近的函數都是與數組有關的,不過各自的功能還是有很大差異的~有了它們就方便我們的數組操作了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM