JavaScript中的slice()方法用于從數組、字符串或類數組對象中提取指定范圍的元素,并返回一個新的數組。
語法:
array.slice(start, end)
參數:
- start:可選,指定從哪個索引位置開始提取元素,默認為0,如果是負數,則從數組末尾開始計算,-1表示倒數第一個元素。
- end:可選,指定在哪個索引位置之前停止提取元素,默認為數組的長度,如果是負數,則從數組末尾開始計算,-1表示倒數第一個元素。
返回值:
返回一個新的數組,包含了從原數組中提取的指定范圍的元素。
示例:
1. 對數組使用slice()方法:
```javascript
const fruits = ['apple', 'banana', 'orange', 'grape', 'kiwi'];
const slicedFruits = fruits.slice(1, 4);
console.log(slicedFruits); // Output: ['banana', 'orange', 'grape']
```
2. 對字符串使用slice()方法:
```javascript
const str = 'Hello, World!';
const slicedStr = str.slice(7, 12);
console.log(slicedStr); // Output: 'World'
```
3. 對類數組對象使用slice()方法:
```javascript
const nodeList = document.querySelectorAll('div');
const slicedNodes = Array.prototype.slice.call(nodeList, 0, 2);
console.log(slicedNodes); // Output: [div, div],提取了前兩個div元素
```
注意:
- slice()方法不會改變原數組或字符串,而是返回一個新的數組或字符串。
- 如果省略end參數,則會提取從start索引位置到數組末尾的所有元素。
- 如果start參數大于end參數,則slice()方法會返回一個空數組或空字符串。
- 使用slice()方法提取范圍時,start索引位置的元素是包含在結果中的,而end索引位置的元素是不包含在結果中的。