區分slice、splice、split、join方法
關於字串和陣列的方法,我們經常會用到,下面就詳細的區分下slice、splice、split、join方法,加深下記憶並做個筆記。
slice (陣列)
定義和用法
slice()方法提取部分的陣列元素,返回包含提取元素的新陣列,不會改變原陣列。
語法
arrayObject.slice(start,end)
引數
start(必選): 指定提取部分的開始下標,可為負數(負數時從陣列的尾部開始計算,如:-1為陣列的最後一項,-2 指倒數第二個元素,以此類推。)end(可選): 指定提取部分的結束下標(擷取部分不包含end下標的元素,截止到下標為(end-1)的元素),沒有end時,預設擷取陣列包含從start到陣列結束的所有元素,也可為負數(負數時從陣列的尾部開始計算,如:-1為陣列的最後一項,-2 指倒數第二個元素,以此類推。)
警告:當start與end間,無任何元素時,返回 [] 空陣列。
例子
// 例子 var a = [10, 20, 30, 40, 50]; a.slice(1); // [20, 30, 40, 50] a.slice(-3); // [30, 40, 50] a.slice(-7); // [10, 20, 30, 40, 50] a.slice(5); // [] a.slice(1, 4); // [20, 30, 40] a.slice(1, -2); // [20, 30] a.slice(1, 7); // [20, 30, 40, 50] a.slice(1, -7); // []
slice (字串)
定義和用法
slice()方法提取部分的字串, 返回一個包含提取字元的新字串,不會改變原字串。
語法
stringObject.slice(start, end)
引數
start (必選),end (可選),與陣列相同, 無任何字元時,返回空字串。例子
// 例子 var str = 'how are you ?'; str.slice(1, -3); // 'ow are yo'
splice (陣列)
定義和用法
splice()方法從陣列中刪除一個或多個元素,在刪除元素位置新增一個或多個元素,返回一個包含所刪除元素的新陣列。註釋:該方法會改變原陣列。
語法
arrayObject.splice(start, deleteNumber, item1,… )
引數
start(必選):刪除元素的開始位置,可為負數,負數從陣列的尾部開始計算。deleteNumber(必選):刪除元素的個數(number), 為0時,不刪除任何元素。
item1, …., itemX (可選):新增的新元素,沒有該項時,不會新增任何元素。
例子
// 例子 var a = [10, 20, 30, 40, 50]; a.splice(1, 2, 'hello', [100, 200]); // 返回 [20, 30] console.log(a); // [10, 'hello', [100, 200], 40, 50]
split (字串)
定義和用法
split()方法在指定的位置,將字串分割成字串陣列, 返回字串陣列, 不會改變原字串。
語法
stringObject.split(separator, maxLength)
引數
separator (必選) :分割字串的指定位置(字串或正則表示式),為(”)空字元時,字串的每個字元都將被分割。maxLength(可選) : 返回字串陣列的最大長度(number), 需返回陣列的一部分使用此項。沒有時,返回整個字串分割的陣列,不考慮長度。
例子
// 例子 var str = 'how are you ?'; str.split(' '); // ['how', 'are', 'you', '?'] str.split('o'); // ['h', 'w are y', 'u ?'] str.split('', 3); // ['h', 'o', 'w']
join (陣列)
定義和用法
join()方法將陣列中的所有元素以特定分割符分割,放入到一個字串中。返回一個字串,不會改變原陣列。
語法
arrayObject.join(separator)
引數
separator (可選) : 指定的分割符,不設定該項,預設以逗號分割。例子
// 例子 var arr = [1, 2, 3, 4, 5, 'AA']; arr.join(); // '1,2,3,4,5,AA' arr.join('/'); // '1/2/3/4/5/AA'