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 數組中查找最高和最低值的內建函數。
您將在本教程的下一章學習如何解決這個問題。