js中 split slice splice 的區分

巴拉巴拉小魔芋發表於2019-02-16

slice splice split 這三個真的更容易混淆,下面來做一下總結
一、針對字串操作的有 split ,slice

  1. split 方法用於把一個字串分割成字串陣列。

string.split( separator , howmany )
separator 必需。字串或正規表示式,從該引數指定的地方分割 string。
howmany 可選。該引數可指定返回的陣列的最大長度。

注:如果把空字串 (“”) 用作 separator,那麼 string中的每個字元之間都會被分割。
注:string.split() 執行的操作與 Array.join 執行的操作是相反的。
例子:”2:3:4:5″.split(“:”) //將返回[“2”, “3”, “4”, “5”]

2.slice 可從已有的陣列中返回選定的元素。
string.slice(start,end)
slice方法複製string的一部分來構造一個新的字串,end引數等於你要取的最後一個字元的位置值加上1

例子:
var a=”i am a boy”;
var b=a.slice(0,6); //”i am a”

二、 針對陣列的操作 slice splice

  1. slice 對陣列進行部分擷取,並返回一個陣列副本

array.slice(start,end)
引數start是擷取的開始陣列索引,end引數等於你要取的最後一個字元的位置值加上1(可選)
注意的是:
a.如果不傳入引數二,那麼將從引數一的索引位置開始擷取,一直到陣列尾
b.當只傳入一個引數,且是負數時,且 |負數| 絕對值不大於陣列長度,從後向前取值
c.當只傳入一個引數,是負數時,並且引數的絕對值大於陣列length時,會擷取整個陣列
d.當傳入一個引數,大於length時,將返回一個空陣列
e.當傳入兩個引數一正一負時,length也會先於負數相加後,再擷取
var a=[1,2,3,4,5,6];
var b=a.slice(2,-3); //[3]

2.splice 從array中移除一個或多個陣列,並用新的item替換它們。
array.splice(start,deleteCount,item…)
引數start是從陣列array中移除元素的開始位置。
引數deleteCount是要移除的元素的個數。
引數start是從陣列array中移除元素的開始位置。引數deleteCount是要移除的元素的個數。
var a=[`a`,`b`,`c`];
var b=a.splice(1,1,`e`,`f`); //a=[`a`,`e`,`f`,`c`],b=[`b`]

相關文章