JavaScript 數組方法

JavaScript 數組的力量隱藏在數組方法中。

把數組轉換為字符串

JavaScript 方法 toString() 把數組轉換為數組值(逗號分隔)的字符串。

實例

var fruits = ["Banana", "Orange", "Apple", "Mango"];
document.getElementById("demo").innerHTML = fruits.toString(); 

結果

Banana,Orange,Apple,Mango

親自試一試

join() 方法也可將所有數組元素結合為一個字符串。

它的行為類似 toString(),但是您還可以規定分隔符:

實例

var fruits = ["Banana", "Orange","Apple", "Mango"];
document.getElementById("demo").innerHTML = fruits.join(" * "); 

結果

Banana * Orange * Apple * Mango

親自試一試

Popping 和 Pushing

在處理數組時,刪除元素和添加新元素是很簡單的。

Popping 和 Pushing 指的是:

從數組彈出項目,或向數組推入項目。

Popping

pop() 方法從數組中刪除最后一個元素:

實例

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.pop();              // 從 fruits 刪除最后一個元素("Mango")

親自試一試

pop() 方法返回“被彈出”的值:

實例

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var x = fruits.pop();      // x 的值是 "Mango"

親自試一試

Pushing

push() 方法(在數組結尾處)向數組添加一個新的元素:

實例

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.push("Kiwi");       //  向 fruits 添加一個新元素

親自試一試

push() 方法返回新數組的長度:

實例

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var x =  fruits.push("Kiwi");   //  x 的值是 5

親自試一試

位移元素

位移與彈出等同,但處理首個元素而不是最后一個。

shift() 方法會刪除首個數組元素,并把所有其他元素“位移”到更低的索引。

實例

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.shift();            // 從 fruits 刪除第一個元素 "Banana"

親自試一試

shift() 方法返回被“位移出”的字符串:

實例

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.shift();             // 返回 "Banana"

親自試一試

unshift() 方法(在開頭)向數組添加新元素,并“反向位移”舊元素:

實例

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.unshift("Lemon");    // 向 fruits 添加新元素 "Lemon"

親自試一試

unshift() 方法返回新數組的長度。

實例

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.unshift("Lemon");    // 返回 5

親自試一試

更改元素

通過使用它們的索引號來訪問數組元素:

數組索引(下標)以 0 開始。[0] 是第一個數組元素,[1] 是第二個,[2] 是第三個 ...

實例

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits[0] = "Kiwi";        // 把 fruits 的第一個元素改為 "Kiwi"

親自試一試

length 屬性提供了向數組追加新元素的簡易方法:

實例

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits[fruits.length] = "Kiwi";          // 向 fruits 追加 "Kiwi"

親自試一試

刪除元素

既然 JavaScript 數組屬于對象,其中的元素就可以使用 JavaScript delete 運算符來刪除

實例

var fruits = ["Banana", "Orange", "Apple", "Mango"];
delete fruits[0];           // 把 fruits 中的首個元素改為 undefined

親自試一試

使用 delete 會在數組留下未定義的空洞。請使用 pop()shift() 取而代之。

拼接數組

splice() 方法可用于向數組添加新項:

實例

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2, 0, "Lemon", "Kiwi");

親自試一試

第一個參數(2)定義了應添加新元素的位置(拼接)。

第二個參數(0)定義應刪除多少元素。

其余參數(“Lemon”,“Kiwi”)定義要添加的新元素。

splice() 方法返回一個包含已刪除項的數組:

實例

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2, 2, "Lemon", "Kiwi");

親自試一試

使用 splice() 來刪除元素

通過聰明的參數設定,您能夠使用 splice() 在數組中不留“空洞”的情況下移除元素:

實例

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(0, 1);        // 刪除 fruits 中的第一個元素

親自試一試

第一個參數(0)定義新元素應該被添加(接入)的位置。

第二個參數(1)定義應該刪除多個元素。

其余參數被省略。沒有新元素將被添加。

合并(連接)數組

concat() 方法通過合并(連接)現有數組來創建一個新數組:

實例(合并兩個數組)

var myGirls = ["Cecilie", "Lone"];
var myBoys = ["Emil", "Tobias", "Linus"];
var myChildren = myGirls.concat(myBoys);   // 連接 myGirls 和 myBoys

親自試一試

concat() 方法不會更改現有數組。它總是返回一個新數組。

concat() 方法可以使用任意數量的數組參數:

實例(合并三個數組)

var arr1 = ["Cecilie", "Lone"];
var arr2 = ["Emil", "Tobias", "Linus"];
var arr3 = ["Robin", "Morgan"];
var myChildren = arr1.concat(arr2, arr3);   // 將arr1、arr2 與 arr3 連接在一起

親自試一試

concat() 方法也可以將值作為參數:

實例(將數組與值合并)

var arr1 = ["Cecilie", "Lone"];
var myChildren = arr1.concat(["Emil", "Tobias", "Linus"]); 

親自試一試

裁剪數組

slice() 方法用數組的某個片段切出新數組。

本例從數組元素 1 ("Orange")開始切出一段數組:

實例

var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(1); 

親自試一試

slice() 方法創建新數組。它不會從源數組中刪除任何元素。

本例從數組元素 3 ("Apple")開始切出一段數組:

實例

var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(3); 

親自試一試

slice() 可接受兩個參數,比如 (1, 3)。

該方法會從開始參數選取元素,直到結束參數(不包括)為止。

實例

var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(1, 3); 

親自試一試

如果結束參數被省略,比如第一個例子,則 slice() 會切出數組的剩余部分。

實例

var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(2); 

親自試一試

自動 toString()

如果需要原始值,則 JavaScript 會自動把數組轉換為字符串。下面兩個例子將產生相同的結果:

實例

var fruits = ["Banana", "Orange", "Apple", "Mango"];
document.getElementById("demo").innerHTML = fruits.toString(); 

親自試一試

實例

var fruits = ["Banana", "Orange", "Apple", "Mango"];
document.getElementById("demo").innerHTML = fruits; 

親自試一試

所有 JavaScript 對象都擁有 toString() 方法。

數組排序

我們將在下一章學習到數組排序的知識~。

查找數組中的最大和最小值

沒有在 JavaScript 數組中查找最高和最低值的內建函數。

您將在本教程的下一章學習如何解決這個問題。

完整的數組參考手冊

如需完整的參考手冊,請訪問我們完整的 JavaScript 數組參考手冊

該參考手冊包含所有數組屬性和方法的描述和實例。