1. 程式人生 > >JS中slice,splice,split的區別

JS中slice,splice,split的區別

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

slice  :定義:接收一個或兩個引數,它可以建立一個由當前陣列中的一項或多項組成的新陣列,注意是新陣列哦~ 也就是說它不會修改原來陣列的值。 
用法:slice( para1 ),會擷取從para1開始的到原陣列最後的部分;
slice(para1,para2)會擷取原陣列的從para1開始的para2-para1個數組。 
注意:當兩個引數中存在負數時,用原陣列的長度加上兩個負數的引數作為相應的引數來計算。
splice  :定義:強大的陣列操作方法
用法 : splice( para1,para2 ) : 刪除陣列中任意數量的項,從para1開始的para2項。注意的是用splice刪除陣列中的值會直接將某幾項從陣列中完全刪除,會導致陣列length值的改變,這與delete的刪除置為undefined是不一樣的。
splice( para1,para2,val1,val2… ):項陣列中新增和刪除項,para1表示可以新增的項數,para2表示刪除的項數,後面的變量表示要新增的項的值,注 意是從para1之後開始刪除和新增的。

注意 : 引數為負數的問題,如果para1為負數,則會加上陣列的長度作為para1的值,而para2為負數或0的話不會執行刪除操作。
split : 根據特定的字元切割字串並且返回生成的陣列。
例如 : str = “s-aaa-sss-eee-www”;
targetArr = str.slite(“-”);    //[‘s’,’aaa’,’sss’,’eee’,’www’]

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