數(shù)組 是可以通過(guò)從零開始的整數(shù)索引訪問(wèn)的元素序列。
數(shù)組文字
數(shù)組文字很方便 創(chuàng)建數(shù)組:
> var arr = ['a','b','c'];
前述陣列具有三個(gè)要素:琴弦'a','b'和'c'。您可以通過(guò)整數(shù)索引訪問(wèn)它們:
> arr [0]
'一種'
> arr [0] ='x';
> arr
['x','b','c']
該length屬性指示數(shù)組具有多少個(gè)元素。您可以使用它來(lái)添加元素和刪除元素:
> var arr = ['a','b'];
>長(zhǎng)度
2
> arr [arr.length] ='c';
> arr
['a','b','c']
>長(zhǎng)度
3
> arr.length = 1;
> arr
[ '一種' ]
該in運(yùn)算符也適用于數(shù)組:
> var arr = ['a','b','c'];
> arr中的1 // //索引1處是否有元素?
真正
> 5 in arr //索引5處是否有元素?
假
請(qǐng)注意,數(shù)組是對(duì)象,因此可以具有對(duì)象屬性:
> var arr = [];
> arr.foo = 123;
> arr.foo
123
數(shù)組方法
數(shù)組有很多方法(請(qǐng)參閱數(shù)組原型方法)。這里有一些例子:
> var arr = ['a','b','c'];
> arr.slice(1,2)//復(fù)制元素
['b']
> arr.slice(1)
['b','c']
> arr.push('x')//追加一個(gè)元素
4
> arr
['a','b','c','x']
> arr.pop()//刪除最后一個(gè)元素
'X'
> arr
['a','b','c']
> arr.shift()//刪除第一個(gè)元素
'一種'
> arr
['b','c']
> arr.unshift('x')//前面加上一個(gè)元素
3
> arr
['x','b','c']
> arr.indexOf('b')//查找元素的索引
1個(gè)
> arr.indexOf('y')
-1
> arr.join('-')//單個(gè)字符串中的所有元素
'xbc'
> arr.join('')
'xbc'
> arr.join()
'x,b,c'
遍歷數(shù)組
有幾種遍歷元素的數(shù)組方法(請(qǐng)參見Iteration(Nondestructive))。兩個(gè)最重要的是forEach和map。
forEach 遍歷數(shù)組并將當(dāng)前元素及其索引傳遞給函數(shù):
[ 'a', 'b', 'c' ].forEach(
? ? function (elem, index) {? // (1)
? ? ? ? console.log(index + '. ' + elem);
? ? });
上面的代碼產(chǎn)生以下輸出:
0。
1. b
2. c
請(qǐng)注意,第(1)行中的函數(shù)可以忽略參數(shù)。例如,它只能具有參數(shù)elem。
map通過(guò)將函數(shù)應(yīng)用于現(xiàn)有數(shù)組的每個(gè)元素來(lái)創(chuàng)建新數(shù)組:
> [1,2,3] .map(function(x){return x * x})
[1,4,9]