黄色电影一区二区,韩国少妇自慰A片免费看,精品人妻少妇一级毛片免费蜜桃AV按摩师 ,超碰 香蕉

JavaScript 數(shù)組

javascript 數(shù)組

javascript 數(shù)組用于在單一變量中存儲(chǔ)多個(gè)值。

以下為 javascript 數(shù)組范例:

>
var cars = ["saab", "volvo", "bmw"];

 

1. 什么是數(shù)組?

數(shù)組是一種特殊的變量,它能夠一次存放一個(gè)以上的值。

如果您有一個(gè)項(xiàng)目清單(例如,汽車品牌列表),在單個(gè)變量中存儲(chǔ)汽車品牌應(yīng)該是這樣的:

var car1 = "saab";
var car2 = "volvo";
var car3 = "bmw"; 

不過,假如您希望遍歷所有汽車并找到一個(gè)特定的值?假如不是三個(gè)汽車品牌而是三百個(gè)呢?

解決方法就是數(shù)組!

數(shù)組可以用一個(gè)單一的名稱存放很多值,并且還可以通過引用索引號(hào)來訪問這些值。

 

2. 創(chuàng)建數(shù)組

使用數(shù)組文本是創(chuàng)建 javascript 數(shù)組最簡單的方法。

語法:

var array-name = [item1, item2, ...];

范例

var cars = ["saab", "volvo", "bmw"];

空格和折行并不重要。聲明可橫跨多行:

范例

var cars = [
    "saab",
    "volvo",
    "bmw"
];

請(qǐng)不要最后一個(gè)元素之后寫逗號(hào)(比如 "bmw",)。

可能存在跨瀏覽器兼容性問題。

 

3. 使用 javascript 關(guān)鍵詞 new

下面的例子也會(huì)創(chuàng)建數(shù)組,并為其賦值:

范例

var cars = new array("saab", "volvo", "bmw");

以上兩個(gè)例子效果完全一樣。無需使用 new array()。

出于簡潔、可讀性和執(zhí)行速度的考慮,請(qǐng)使用第一種方法(數(shù)組文本方法)。

 

4. 訪問數(shù)組元素

我們通過引用索引號(hào)(下標(biāo)號(hào))來引用某個(gè)數(shù)組元素。

這條語句訪問 cars 中的首個(gè)元素的值:

var name = cars[0];

這條語句修改 cars 中的首個(gè)元素:

cars[0] = "opel";

范例

var cars = ["saab", "volvo", "bmw"];
document.getelementbyid("demo").innerhtml = cars[0]; 

[0] 是數(shù)組中的第一個(gè)元素。[1] 是第二個(gè)。數(shù)組索引從 0 開始。

 

5. 改變數(shù)組元素

這條語句修改了 cars 中第一個(gè)元素的值:

cars[0] = "opel";

范例

var cars = ["saab", "volvo", "bmw"];
cars[0] = "opel";
document.getelementbyid("demo").innerhtml = cars[0];

 

6. 訪問完整數(shù)組

通過 javascript,可通過引用數(shù)組名來訪問完整數(shù)組:

范例

var cars = ["saab", "volvo", "bmw"];
document.getelementbyid("demo").innerhtml = cars; 

 

7. 數(shù)組是對(duì)象

數(shù)組是一種特殊類型的對(duì)象。在 javascript 中對(duì)數(shù)組使用 typeof 運(yùn)算符會(huì)返回 "object"。

但是,javascript 數(shù)組最好以數(shù)組來描述。

數(shù)組使用數(shù)字來訪問其“元素”。在本例中,person[0] 返回 bill:

數(shù)組:

var person = ["bill", "gates", 62];

對(duì)象使用名稱來訪問其“成員”。在本例中,person.firstname 返回 bill:

對(duì)象:

var person = {firstname:"john", lastname:"doe", age:46};

 

8. 數(shù)組元素可以是對(duì)象

javascript 變量可以是對(duì)象。數(shù)組是特殊類型的對(duì)象。

正因如此,您可以在相同數(shù)組中存放不同類型的變量。

您可以在數(shù)組保存對(duì)象。您可以在數(shù)組中保存函數(shù)。你甚至可以在數(shù)組中保存數(shù)組:

myarray[0] = date.now;
myarray[1] = myfunction;
myarray[2] = mycars;

 

9. 數(shù)組屬性和方法

javascript 數(shù)組的真實(shí)力量隱藏在數(shù)組的屬性和方法中:

范例

var x = cars.length;   // length 屬性返回元素的數(shù)量
var y = cars.sort();   // sort() 方法對(duì)數(shù)組進(jìn)行排序

我們將在下一章學(xué)習(xí)數(shù)組方法。

 

10. length 屬性

length 屬性返回?cái)?shù)組的長度(數(shù)組元素的數(shù)目)。

范例

var fruits = ["banana", "orange", "apple", "mango"];
fruits.length;                       // fruits 的長度是 4

length 屬性始終大于最高數(shù)組索引(下標(biāo))。

 

11. 訪問第一個(gè)數(shù)組元素

范例

fruits = ["banana", "orange", "apple", "mango"];
var first = fruits[0];

 

12. 訪問最后一個(gè)數(shù)組元素

范例

fruits = ["banana", "orange", "apple", "mango"];
var last = fruits[fruits.length - 1];

 

13. 遍歷數(shù)組元素

遍歷數(shù)組的最安全方法是使用 "for" 循環(huán):

范例

var fruits, text, flen, i;

fruits = ["banana", "orange", "apple", "mango"];
flen = fruits.length;
text = "<ul>";
for (i = 0; i < flen; i++) {
     text += "<li>" + fruits[i] + "</li>";
} 

您也可以使用 array.foreach() 函數(shù):

范例

var fruits, text;
fruits = ["banana", "orange", "apple", "mango"];

text = "<ul>";
fruits.foreach(myfunction);
text += "</ul>";

function myfunction(value) {
  text += "<li>" + value + "</li>";
}

 

14. 添加數(shù)組元素

向數(shù)組添加新元素的最佳方法是使用 push() 方法:

范例

var fruits = ["banana", "orange", "apple", "mango"];
fruits.push("lemon");                // 向 fruits 添加一個(gè)新元素 (lemon)

也可以使用 length 屬性向數(shù)組添加新元素:

范例

var fruits = ["banana", "orange", "apple", "mango"];
fruits[fruits.length] = "lemon";     // 向 fruits 添加一個(gè)新元素 (lemon)

警告!

添加最高索引的元素可在數(shù)組中創(chuàng)建未定義的“洞”:

范例

var fruits = ["banana", "orange", "apple", "mango"];
fruits[6] = "lemon";                 // 向 fruits 添加一個(gè)新元素 (lemon)

 

15. 關(guān)聯(lián)數(shù)組

很多編程元素支持命名索引的數(shù)組。

具有命名索引的數(shù)組被稱為關(guān)聯(lián)數(shù)組(或散列)。

javascript 不支持命名索引的數(shù)組。

在 javascript 中,數(shù)組只能使用數(shù)字索引。

范例

var person = [];
person[0] = "bill";
person[1] = "gates";
person[2] = 62;
var x = person.length;          // person.length 返回 3
var y = person[0];              // person[0] 返回 "bill"

警告!

假如您使用命名索引,javascript 會(huì)把數(shù)組重定義為標(biāo)準(zhǔn)對(duì)象。

之后,所有數(shù)組的方法和屬性將產(chǎn)生非正確結(jié)果。

范例:

var person = [];
person["firstname"] = "bill";
person["lastname"] = "gates";
person["age"] = 62;
var x = person.length;         // person.length 將返回 0
var y = person[0];              // person[0] 將返回 undefined

 

16. 數(shù)組和對(duì)象的區(qū)別

在 javascript 中,數(shù)組使用數(shù)字索引。

在 javascript 中,對(duì)象使用命名索引。

數(shù)組是特殊類型的對(duì)象,具有數(shù)字索引。

 

17. 何時(shí)使用數(shù)組,何時(shí)使用對(duì)象?

  • javascript 不支持關(guān)聯(lián)數(shù)組
  • 如果希望元素名為字符串(文本)則應(yīng)該使用對(duì)象。
  • 如果希望元素名為數(shù)字則應(yīng)該使用數(shù)組。

 

18. 避免 new array()

沒有必要使用 javascript 的內(nèi)建數(shù)組構(gòu)造器 new array()

請(qǐng)使用 [] 取而代之!

下面兩條不同的語句創(chuàng)建了名為 points 的新的空數(shù)組:

var points = new array();         // 差
var points = [];                  // 優(yōu)

下面兩條不同的語句創(chuàng)建包含六個(gè)數(shù)字的新數(shù)組:

var points = new array(40, 100, 1, 5, 25, 10); // 差
var points = [40, 100, 1, 5, 25, 10];          // 優(yōu)

new 關(guān)鍵詞只會(huì)使代碼復(fù)雜化。它還會(huì)產(chǎn)生某些不可預(yù)期的結(jié)果:

var points = new array(40, 100);  // 創(chuàng)建包含兩個(gè)元素的數(shù)組(40 和 100)

假如刪除其中一個(gè)元素會(huì)怎么樣?

var points = new array(40);       // 創(chuàng)建包含 40 個(gè)未定義元素的數(shù)組!?。?/span>

 

19. 如何識(shí)別數(shù)組

常見的問題是:我如何知曉某個(gè)變量是否是數(shù)組?

問題在于 javascript 運(yùn)算符 typeof 返回 "object":

var fruits = ["banana", "orange", "apple", "mango"];

typeof fruits;             // 返回 object

typeof 運(yùn)算符返回 "object",因?yàn)?javascript 數(shù)組屬于對(duì)象。

解決方案 1:

為了解決這個(gè)問題,ecmascript 5 定義了新方法 array.isarray()

array.isarray(fruits);     // 返回 true

此方案的問題在于 ecmascript 5 不支持老的瀏覽器。

解決方案 2:

創(chuàng)建您自己的 isarray() 函數(shù)以解決此問題:

function isarray(x) {
    return x.constructor.tostring().indexof("array") > -1;
}

假如參數(shù)為數(shù)組,則上面的函數(shù)始終返回 true。

或者更準(zhǔn)確的解釋是:假如對(duì)象原型包含單詞 "array" 則返回 true。

解決方案 3:

假如對(duì)象由給定的構(gòu)造器創(chuàng)建,則 instanceof 運(yùn)算符返回 true:

var fruits = ["banana", "orange", "apple", "mango"];
 
fruits instanceof array     // 返回 true

下一節(jié):js 數(shù)組方法

js 教程

相關(guān)文章