數(shù)組是數(shù)組元素的序列,能通過整數(shù)索引方法數(shù)組元素,數(shù)組索引從0開始。
數(shù)組字面量創(chuàng)建數(shù)組很方便:
> var arr = [ 'a', 'b', 'c' ];
上面的數(shù)組有三個(gè)元素:分別是字符串“a
”,“b
”, “c
”。你可以通過整數(shù)索引訪問它們:
> arr[0]
'a'
> arr[0] = 'x';
> arr
[ 'x', 'b', 'c' ]
length屬性總表示一個(gè)數(shù)組有多少項(xiàng)元素。
> arr.length
3
除此之外它也可以用來從數(shù)組上移除尾部元素:
> arr.length = 2;
> arr
[ 'x', 'b' ]
in操作符也可以在數(shù)組上工作。
> 1 in arr // arr在索引為1處是否有元素?
true
> 5 in arr // arr在索引為5處是否有元素?
false
值得注意的是數(shù)組是對象,因此可以有對象屬性:
> arr.foo = 123;
> arr.foo
123
數(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è)元素
'a'
> arr
[ 'b', 'c' ]
> arr.unshift('x') // 在前面添加一個(gè)元素
3
> arr
[ 'x', 'b', 'c' ]
> arr.indexOf('b') // 查找給定項(xiàng)在數(shù)組中的索引,若不存在返回-1
1
> arr.indexOf('y')
-1
> arr.join('-') // 將元素拼接為一個(gè)字符串
'x-b-c'
> arr.join('')
'xbc'
> arr.join()
'x,b,c'
有幾種方法可以遍歷數(shù)組元素。其中兩個(gè)最重要的是 forEach 和 map。 forEach遍歷整個(gè)數(shù)組,并將當(dāng)前元素和它的索引傳遞給一個(gè)函數(shù):
[ 'a', 'b', 'c' ].forEach(
function (elem, index) { // (*)
console.log(index + '. ' + elem);
});
上面代碼的輸出
0. a
1. b
2. c
注意(*
)行的函數(shù)參數(shù)是可省略的。例如:它可以只有一個(gè)參數(shù) elem。
map創(chuàng)建一個(gè)新數(shù)組,通過給每個(gè)存在數(shù)組元素應(yīng)用一個(gè)函數(shù):
> [1,2,3].map(function (x) { return x*x })
[ 1, 4, 9 ]
深入閱讀
更多建議: