JavaScript Array (陣列)
陣列 (array) 是一個有序的序列,陣列中可以儲存不定數量的任何值,陣列在 JavaScript 中屬於複合資料型態 (composite data type)。
宣告陣列 (Create an Array)
我們可以用 array literal []
來宣告一個新陣列。
語法:
var arrayName = [item1, item2, ...];
例如:
var fruits = ['Apple', 'Banana'];
陣列的最後一個元素後面不要再加上逗號
,
,例如 ['Apple', 'Banana',]
因為在不同的瀏覽器可能會發生錯誤。存取陣列 (Access the Elements of an Array)
陣列中的每一個值我們稱做一個元素,每一個元素儲存在陣列中固定的位置,我們稱做索引 (index),索引值從 0 開始,表示陣列中的第一個元素,第二個之後的元素索引值則依序加 1 (0, 1, 2, 3, ...)。
我們可以用 []
運算子來存取陣列中的元素。
語法:
ary[index]
讀取陣列中的元素
var fruits = ['Apple', 'Banana'];
// Apple
var first = fruits[0];
// Banana
var last = fruits[fruits.length - 1];
更改陣列中某個元素的值
var fruits = ['Apple', 'Banana'];
fruits[0] = 'Orange';
fruits[1] = 101;
// 輸出 ["Orange", 101]
console.log(fruits);
取得陣列長度 (length)
你可以由陣列的 length 屬性得到一個陣列的長度:
var fruits = ['Apple', 'Banana'];
// 輸出 2
console.log(fruits.length)
新增元素
你可以用 push()
方法來新增元素到陣列最後面:
var fruits = ['Apple', 'Banana'];
fruits.push('Orange');
// 輸出 ["Apple", "Banana", "Orange"]
console.log(fruits);
或用 ary[aryLength]
的方式:
var fruits = ['Apple', 'Banana'];
fruits[fruits.length] = 'Orange';
// 輸出 ["Apple", "Banana", "Orange"]
console.log(fruits);
上面的 fruits.length 其實就是陣列目前最大索引值加 1 的意思,但一般都會用 .push() 比較方便。
或用 unshift()
方法來新增一個元素到陣列最前面:
var fruits = ['Apple', 'Banana'];
fruits.unshift('Orange');
// 輸出 ["Orange", "Apple", "Banana"]
console.log(fruits);
刪除元素
你可以用 pop()
方法來移除陣列中的最後一個元素:
var fruits = ['Apple', 'Banana'];
// pop() 除了移除元素,還會返回移除的元素值
var last = fruits.pop(); // Banana
// 輸出 ["Apple"]
console.log(fruits);
用 shift()
方法來移除陣列中的第一個元素:
var fruits = ['Apple', 'Banana'];
// shift() 除了移除元素,還會返回移除的元素值
var first = fruits.shift(); // Apple
// 輸出 ["Banana"]
console.log(fruits);
delete
運算子可以用來刪除特定位置的元素,但它不會移除元素,只是將該位置的元素值變成 undefined
:
var fruits = ['Apple', 'Banana', 'Orange'];
delete fruits[0];
// [undefined, "Banana", "Orange"]
fruits;
迴圈呼叫陣列 (for loop Array Elements)
for
語法可以用來遍歷陣列中所有的元素。
用法:
var fruits = ['Apple', 'Banana', 'Orange'];
for (var i=0; i<fruits.length; ++i) {
console.log(fruits[i]);
}
上面依序會輸出:
Apple
Banana
Orange
陣列排序 (Array Sorting)
陣列的 sort() 方法可以用來做排序,如何排序的介紹請看這邊。