7.1 splice() 方法
在 JavaScript 中,陣列提供了內建的方法來操作資料。在這堂課中,我們將探討四個主要的陣列方法: splice()
, slice()
, concat()
和 indexOf()
。
這些方法各自在陣列上執行特定的操作,並能大大簡化資料的處理。
splice() 方法 會改變陣列的內容,刪除現有元素和/或在其位置加入新元素。
語法:
splice (start, deleteCount, item1, item2, ...);
其中:
start
: 開始更改的索引deleteCount
: 刪除的元素數量。如果未指定,則從 start 開始刪除所有元素item1
,item2
,...
: 要加入陣列的元素。如果未指定,則不加入任何元素
範例 1: 刪除元素
在這個範例中,從陣列 fruits
中刪除從索引 2
開始的兩個元素。返回值是被刪除的元素組成的陣列。
let fruits = ['apple', 'banana', 'cherry', 'date', 'fig'];
let removed = fruits.splice(2, 2);
console.log(fruits); // 輸出: ['apple', 'banana', 'fig']
console.log(removed); // 輸出: ['cherry', 'date']
範例 2: 增加元素
在這個範例中,陣列 fruits
中從索引 2
開始加入了兩個新元素(date
和 fig
)。不刪除任何元素。
let fruits = ['apple', 'banana', 'cherry'];
fruits.splice(2, 0, 'date', 'fig');
console.log(fruits); // 輸出: ['apple', 'banana', 'date', 'fig', 'cherry']
範例 3: 替換元素
在這個範例中,索引為 1
的元素(banana
)被替換成兩個新元素(date
和 fig
)。
let fruits = ['apple', 'banana', 'cherry'];
fruits.splice(1, 1, 'date', 'fig');
console.log(fruits); // 輸出: ['apple', 'date', 'fig', 'cherry']
7.2 slice() 方法
方法 slice()
會返回一個新的陣列,該陣列包含原始陣列的一部分的複製。原始陣列不會被更改。
語法:
array.slice(begin, end);
其中:
begin
: 開始複製的索引end
: 複製到的索引(不包括此索引的元素)。如果未指定,則複製到陣列的末尾
範例 1: 複製一部分陣列
在這個範例中,創建了一個新陣列,該陣列包含來自陣列 fruits
中索引從 1
到 2
的元素。
let fruits = ['apple', 'banana', 'cherry', 'date', 'fig'];
let sliced = fruits.slice(1, 3);
console.log(sliced); // 輸出: ['banana', 'cherry']
範例 2: 從陣列開始複製
在這個範例中,創建了一個新的陣列,該陣列包含來自陣列 fruits
中索引 0
和 1
的元素。
let fruits = ['apple', 'banana', 'cherry'];
let sliced = fruits.slice(0, 2);
console.log(sliced); // 輸出: ['apple', 'banana']
範例 3: 複製到陣列末尾
在這個範例中,創建了一個新陣列,該陣列包含來自陣列 fruits
中從索引 1
到末尾的元素。
let fruits = ['apple', 'banana', 'cherry'];
let sliced = fruits.slice(1);
console.log(sliced); // 輸出: ['banana', 'cherry']
7.3 concat() 方法
concat()
方法用於合併兩個或多個陣列。它會返回一個新陣列,其中包含所有合併陣列的元素。
語法:
array1.concat(array2, array3, ...);
其中:
array1
,array2
,array3
,...
: 需要合併的陣列
範例 1: 合併兩個陣列
在這個範例中,陣列 fruits1
和 fruits2
合併成一個新陣列 combined
。
let fruits1 = ['apple', 'banana'];
let fruits2 = ['cherry', 'date'];
let combined = fruits1.concat(fruits2);
console.log(combined); // 輸出: ['apple', 'banana', 'cherry', 'date']
範例 2: 合併多個陣列
在這個範例中,三個陣列被合併成一個新的陣列 combined
。
let fruits1 = ['apple', 'banana'];
let fruits2 = ['cherry', 'date'];
let fruits3 = ['fig', 'grape'];
let combined = fruits1.concat(fruits2, fruits3);
console.log(combined); // 輸出: ['apple', 'banana', 'cherry', 'date', 'fig', 'grape']
範例 3: 合併陣列和元素
在這個範例中,加入元素 cherry
和 date
到陣列 fruits
,創建一個新的陣列 moreFruits
。
let fruits = ['apple', 'banana'];
let moreFruits = fruits.concat('cherry', 'date');
console.log(moreFruits); // 輸出: ['apple', 'banana', 'cherry', 'date']
7.4 indexOf() 方法
方法 indexOf()
返回元素在陣列中第一次出現的索引,如果沒有找到則返回 -1
。
語法:
array.indexOf(searchElement, fromIndex);
其中:
searchElement
: 要尋找的元素fromIndex
: 開始搜尋的索引。如果未指定,則從陣列的開頭開始搜尋
範例 1: 在陣列中尋找元素
在這個範例中,indexOf()
方法返回元素 banana
在陣列 fruits
中的索引。
let fruits = ['apple', 'banana', 'cherry'];
let index = fruits.indexOf('banana');
console.log(index); // 輸出: 1
範例 2: 元素未找到
在這個範例中,indexOf()
方法返回 -1
,因為元素 date
在陣列 fruits
中未找到。
let fruits = ['apple', 'banana', 'cherry'];
let index = fruits.indexOf('date');
console.log(index); // 輸出: -1
範例 3: 從特定索引開始尋找元素
在這個範例中,indexOf()
方法從索引 2
開始找尋元素 banana
,並在索引 3
找到它。
let fruits = ['apple', 'banana', 'cherry', 'banana'];
let index = fruits.indexOf('banana', 2);
console.log(index); // 輸出: 3
GO TO FULL VERSION