javascript 數(shù)組方法
javascript 通過數(shù)組方法來操作數(shù)組。
1. 把數(shù)組轉(zhuǎn)換為字符串
javascript 方法 tostring() 把數(shù)組轉(zhuǎn)換為數(shù)組值(逗號(hào)分隔)的字符串。
范例
var fruits = ["banana", "orange", "apple", "mango"]; document.getelementbyid("demo").innerhtml = fruits.tostring();
結(jié)果
banana,orange,apple,mango
join() 方法也可將所有數(shù)組元素結(jié)合為一個(gè)字符串。
它的行為類似 tostring(),但是您還可以規(guī)定分隔符:
范例
var fruits = ["banana", "orange","apple", "mango"]; document.getelementbyid("demo").innerhtml = fruits.join(" * ");
結(jié)果
banana * orange * apple * mango
2. popping 和 pushing
在處理數(shù)組時(shí),刪除元素和添加新元素是很簡(jiǎn)單的。
popping 和 pushing 指的是:
從數(shù)組彈出項(xiàng)目,或向數(shù)組推入項(xiàng)目。
3. popping
pop() 方法從數(shù)組中刪除最后一個(gè)元素:
范例
var fruits = ["banana", "orange", "apple", "mango"];
fruits.pop(); // 從 fruits 刪除最后一個(gè)元素("mango")
pop() 方法返回“被彈出”的值:
范例
var fruits = ["banana", "orange", "apple", "mango"];
var x = fruits.pop(); // x 的值是 "mango"
4. pushing
push() 方法(在數(shù)組結(jié)尾處)向數(shù)組添加一個(gè)新的元素:
范例
var fruits = ["banana", "orange", "apple", "mango"];
fruits.push("kiwi"); // 向 fruits 添加一個(gè)新元素
push() 方法返回新數(shù)組的長(zhǎng)度:
范例
var fruits = ["banana", "orange", "apple", "mango"];
var x = fruits.push("kiwi"); // x 的值是 5
5. 位移元素
位移與彈出等同,但處理首個(gè)元素而不是最后一個(gè)。
shift() 方法會(huì)刪除首個(gè)數(shù)組元素,并把所有其他元素“位移”到更低的索引。
范例
var fruits = ["banana", "orange", "apple", "mango"];
fruits.shift(); // 從 fruits 刪除第一個(gè)元素 "banana"
shift() 方法返回被“位移出”的字符串:
范例
var fruits = ["banana", "orange", "apple", "mango"];
fruits.shift(); // 返回 "banana"
unshift() 方法(在開頭)向數(shù)組添加新元素,并“反向位移”舊元素:
范例
var fruits = ["banana", "orange", "apple", "mango"];
fruits.unshift("lemon"); // 向 fruits 添加新元素 "lemon"
unshift() 方法返回新數(shù)組的長(zhǎng)度。
范例
var fruits = ["banana", "orange", "apple", "mango"];
fruits.unshift("lemon"); // 返回 5
6. 更改元素
通過使用它們的索引號(hào)來訪問數(shù)組元素:
數(shù)組索引(下標(biāo))以 0 開始。[0] 是第一個(gè)數(shù)組元素,[1] 是第二個(gè),[2] 是第三個(gè) ...
范例
var fruits = ["banana", "orange", "apple", "mango"];
fruits[0] = "kiwi"; // 把 fruits 的第一個(gè)元素改為 "kiwi"
length 屬性提供了向數(shù)組追加新元素的簡(jiǎn)易方法:
范例
var fruits = ["banana", "orange", "apple", "mango"];
fruits[fruits.length] = "kiwi"; // 向 fruits 追加 "kiwi"
7. 刪除元素
既然 javascript 數(shù)組屬于對(duì)象,其中的元素就可以使用 javascript delete 運(yùn)算符來刪除:
范例
var fruits = ["banana", "orange", "apple", "mango"];
delete fruits[0]; // 把 fruits 中的首個(gè)元素改為 undefined
使用 delete 會(huì)在數(shù)組留下未定義的空洞。請(qǐng)使用 pop() 或 shift() 取而代之。
8. 拼接數(shù)組
splice() 方法可用于向數(shù)組添加新項(xiàng):
范例
var fruits = ["banana", "orange", "apple", "mango"]; fruits.splice(2, 0, "lemon", "kiwi");
第一個(gè)參數(shù)(2)定義了應(yīng)添加新元素的位置(拼接)。
第二個(gè)參數(shù)(0)定義應(yīng)刪除多少元素。
其余參數(shù)(“l(fā)emon”,“kiwi”)定義要添加的新元素。
splice() 方法返回一個(gè)包含已刪除項(xiàng)的數(shù)組:
范例
var fruits = ["banana", "orange", "apple", "mango"]; fruits.splice(2, 2, "lemon", "kiwi");
9. 使用 splice() 來刪除元素
通過聰明的參數(shù)設(shè)定,您能夠使用 splice() 在數(shù)組中不留“空洞”的情況下移除元素:
范例
var fruits = ["banana", "orange", "apple", "mango"];
fruits.splice(0, 1); // 刪除 fruits 中的第一個(gè)元素
第一個(gè)參數(shù)(0)定義新元素應(yīng)該被添加(接入)的位置。
第二個(gè)參數(shù)(1)定義應(yīng)該刪除多個(gè)元素。
其余參數(shù)被省略。沒有新元素將被添加。
10. 合并(連接)數(shù)組
concat() 方法通過合并(連接)現(xiàn)有數(shù)組來創(chuàng)建一個(gè)新數(shù)組:
范例(合并兩個(gè)數(shù)組)
var mygirls = ["cecilie", "lone"]; var myboys = ["emil", "tobias", "linus"]; var mychildren = mygirls.concat(myboys); // 連接 mygirls 和 myboys
concat() 方法不會(huì)更改現(xiàn)有數(shù)組。它總是返回一個(gè)新數(shù)組。
concat() 方法可以使用任意數(shù)量的數(shù)組參數(shù):
范例(合并三個(gè)數(shù)組)
var arr1 = ["cecilie", "lone"]; var arr2 = ["emil", "tobias", "linus"]; var arr3 = ["robin", "morgan"]; var mychildren = arr1.concat(arr2, arr3); // 將arr1、arr2 與 arr3 連接在一起
concat() 方法也可以將值作為參數(shù):
范例(將數(shù)組與值合并)
var arr1 = ["cecilie", "lone"]; var mychildren = arr1.concat(["emil", "tobias", "linus"]);
11. 裁剪數(shù)組
slice() 方法用數(shù)組的某個(gè)片段切出新數(shù)組。
本例從數(shù)組元素 1 ("orange")開始切出一段數(shù)組:
范例
var fruits = ["banana", "orange", "lemon", "apple", "mango"]; var citrus = fruits.slice(1);
slice() 方法創(chuàng)建新數(shù)組。它不會(huì)從源數(shù)組中刪除任何元素。
本例從數(shù)組元素 3 ("apple")開始切出一段數(shù)組:
范例
var fruits = ["banana", "orange", "lemon", "apple", "mango"]; var citrus = fruits.slice(3);
slice() 可接受兩個(gè)參數(shù),比如 (1, 3)。
該方法會(huì)從開始參數(shù)選取元素,直到結(jié)束參數(shù)(不包括)為止。
范例
var fruits = ["banana", "orange", "lemon", "apple", "mango"]; var citrus = fruits.slice(1, 3);
如果結(jié)束參數(shù)被省略,比如第一個(gè)例子,則 slice() 會(huì)切出數(shù)組的剩余部分。
范例
var fruits = ["banana", "orange", "lemon", "apple", "mango"]; var citrus = fruits.slice(2);
12. 自動(dòng) tostring()
如果需要原始值,則 javascript 會(huì)自動(dòng)把數(shù)組轉(zhuǎn)換為字符串。下面兩個(gè)例子將產(chǎn)生相同的結(jié)果:
范例
var fruits = ["banana", "orange", "apple", "mango"]; document.getelementbyid("demo").innerhtml = fruits.tostring();
范例
var fruits = ["banana", "orange", "apple", "mango"]; document.getelementbyid("demo").innerhtml = fruits;
所有 javascript 對(duì)象都擁有 tostring() 方法。
13. 數(shù)組排序
我們將在下一章學(xué)習(xí)到數(shù)組排序的知識(shí)~。
14. 查找數(shù)組中的最大和最小值
沒有在 javascript 數(shù)組中查找最高和最低值的內(nèi)建函數(shù)。
您將在本教程的下一章學(xué)習(xí)如何解決這個(gè)問題。