---
# System prepended metadata

title: slice( )、splice( )、split( )有什麼不同？

---

# slice( )、splice( )、split( )有什麼不同？
當每次在處理array或string切割的時候，常常會忘記要用哪個方法來處理，因此以下將分別介紹slice( )、splice( )、split( )三者的使用時機及功能：

##    slice()：
1.語法：Array.slice(begin , end)
###
2.使用時機：陣列(array)和字串(string)
###    
3.說明：此方法會回傳一個新陣列物件，參數begin為切割的起始位置，例如：begin為1的話，則切割起始位置就從Array中index=1的元素(element)開始，結束位置為參數end，但截取的元素不包括index = end的元素，也就是說，截取的內容會從index = begin的元素到index = (end -1)的元素。而原本的陣列則不會被修改，故可以假設一個變數來接住回傳值，例如：let slicePart = Array.slice(begin , end)。以下將用實際例子補充說明。
###    
4.範例：
###    
```javascript=
const fruits = ['apple', 'banana', 'grape', 'lemon', 'papaya'];

console.log(fruits.slice(2));
//只寫一個值預設會代入begin值，故分割範圍從index=2的元素到最後一個元素
// Expected output: Array ["grape", "lemon", "papaya"]

console.log(animals.slice(2, 4));
//分割範圍從index=2到index=3的元素
// Expected output: Array ["grape", "lemon"]

console.log(animals.slice(-2));
//如果引數值為負值，則代表index從最後往前數，最後一個元素為-1，倒數第二個為-2，以此類推
// Expected output: Array ["lemon", "papaya"]

console.log(animals.slice(2, -1));
// Expected output: Array ["grape", "lemon"]

console.log(animals.slice());
//如果未對參數賦值，則切割範圍就是從頭到尾的元素，等同未做切割
// Expected output: Array ["ant", "bison", "camel", "duck", "elephant"]
```
###    
##    splice( )：
1.語法：Array.splice(begin , deleteCount , addItem1 , addItem2 , …)
###    
2.使用時機：陣列(array)
###    
3.說明：可以藉由此方法來刪除陣列內既有元素並且加入新元素(可加可不加)來改變一個陣列的內容，故原始陣列會被修改。參數begin表示由index = begin的元素開始刪除 ; 參數deleteCount表示刪除元素的數量，因此若deleteCount = 0，則不會進行刪除；addItem表示從index = begin前要加入到陣列的元素。
###    
4.範例：
###    
```javascript=
const letters= ['A', 'B', 'C', 'D'];
months.splice(1, 0, 'E');
// Inserts at index 1
console.log(letters);
// Expected output: Array ["A","E","B","c","D"]

months.splice(4, 1, 'F');
// Replaces 1 element at index 4
console.log(letters);
// Expected output: Array ["A", "E", "B", "C", "F"]
```
##    split( )：
1.語法：string.split(separator , limit)
###    
2.使用時機：字串(string)
###    
3.說明：此方法會回傳一個新陣列物件，字串中從separator進行分割，也就是分割點的意思；limit則代表分割出來後的最大數量。使用此方法後原本的字串不會被修改，故可以假設一個變數來接住回傳值。
###    
4.範例：
###    
```javascript=
const str = 'I went to bed quite late last night.';

const words = str.split(' ');
console.log(words[3]);
// Expected output: "bed"

const letters= str.split('');
console.log(letters[8]);
// Expected output: "o"

const whole= str.split();
console.log(whole);
// Expected output: Array ["I went to bed quite late last night."]
```
