codecamp

数组(Arrays)

数组是数组元素的序列,能通过整数索引方法数组元素,数组索引从0开始。

数组字面量(Array literals)

数组字面量创建数组很方便:

> var arr = [ 'a', 'b', 'c' ];

上面的数组有三个元素:分别是字符串“a”,“b”, “c”。你可以通过整数索引访问它们:

> arr[0]
'a'
> arr[0] = 'x';
> arr
[ 'x', 'b', 'c' ]

length属性总表示一个数组有多少项元素。

> arr.length
3

除此之外它也可以用来从数组上移除尾部元素:

> arr.length = 2;
> arr
[ 'x', 'b' ]

in操作符也可以在数组上工作。

> 1 in arr // arr在索引为1处是否有元素?
true
> 5 in arr // arr在索引为5处是否有元素?
false

值得注意的是数组是对象,因此可以有对象属性:

> arr.foo = 123;
> arr.foo
123

数组方法(Array methods)

数组有许多方法。举些例子:

> var arr = [ 'a', 'b', 'c' ];


> arr.slice(1, 2)  // 复制元素
[ 'b' ]
> arr.slice(1)
[ 'b', 'c' ]


> arr.push('x')  // 在末尾添加一个元素
4
> arr
[ 'a', 'b', 'c', 'x' ]


> arr.pop()  // 移除最后一个元素
'x'
> arr
[ 'a', 'b', 'c' ]


> arr.shift()  // 移除第一个元素
'a'
> arr
[ 'b', 'c' ]


> arr.unshift('x')  // 在前面添加一个元素
3
> arr
[ 'x', 'b', 'c' ]


> arr.indexOf('b')  // 查找给定项在数组中的索引,若不存在返回-1
1
> arr.indexOf('y') 
-1


> arr.join('-')  // 将元素拼接为一个字符串
'x-b-c'
> arr.join('')
'xbc'
> arr.join()
'x,b,c'

遍历数组(Iterating over arrays)

有几种方法可以遍历数组元素。其中两个最重要的是 forEach 和 map。 forEach遍历整个数组,并将当前元素和它的索引传递给一个函数:

[ 'a', 'b', 'c' ].forEach(
    function (elem, index) {  // (*)
        console.log(index + '. ' + elem);
    });

上面代码的输出

0. a
1. b
2. c

注意(*)行的函数参数是可省略的。例如:它可以只有一个参数 elem。 map创建一个新数组,通过给每个存在数组元素应用一个函数:

> [1,2,3].map(function (x) { return x*x })
[ 1, 4, 9 ]

深入阅读

对象和继承(Objects and inheritance)
正则表达式(Regular expressions)
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }