JavaScript高级编程学习5——Array

       在ECMAScript里面数组是一个类。我们通过new关键字来声明获得一个数组。也可以在声明的时候进行初始化。和其他语言一样ECMAScript的数组索引也是从0开始的。但是有一点不同的是,ECMAScript的数组可以动态增长。对于下面代码中的array[2]是自动被赋值为null。

           var array = new Array(); //直接用new初始化
        var array = new Array('football', 'basketball'); //在用new初始化的同时,进行赋值
        var array = new Array('football', 'basketball'); //初始化时的长度为2,但是接下来可以进行动态增长。
        array[3] = 'tennis';
           document.write(array.toString()) //输出的是:football,basketball,‘’,tennis

      在JavaScript中,Array重新实现了toString和valueOf方法。对array调用toString和valueOf返回的是一个特殊的字符串,该字符串是通过对array的每一项调用toString方法,然后用逗号将他们拼接起来。而toLocalString方法是通过对数组的每一项调用toLocalString方法,然后用逗号拼接输出。其结果和toString和valueOf返回的结果是一致的。

      数组的常用方法:

      1.join方法。Array.join('字符串')该方法通过传入一个字符串对数组的每一个想进行拼接,然后返回一个拼接完的字符串。传递给join的字符串可以是任意的。join是把数组转换成字符串,split是用来把字符串转换成数组。

      2.contact方法。Array.contact('字符串')该方法返回的是一个新的数组。这个新的数组是将传递进去的字符串附加在数组末尾。

      3.slice方法。返回具有特定项的数组,该方法可以接受一个或者两个参数。如果只有一个参数,那么该方法返回的是从该参数开始到数组结尾的所有项。如果是两个参数,那么该方法返回的是第一个到第二个之间的数组项,不包括第二个位置所在的项。

      4.数组通过调用ECMAScript提供给我们的push和pop方法,可以使其实现类似于栈的数据结构。push方法用于将参数项加入到数组的末尾,pop方法用于将数组的末尾项移除,也就是弹出最后一项。通过这两个方法可以是数组具备栈的行为。

      5.数组的通过ECMAScript提供给我们的shift方法和push方法可以实现队列的数据结构。push方法前面已经介绍过,是将项添加到数组的最后一项。而shift方法是将数组的第一项移除,这就实现了类似于队列的数据结构,先进先出。此外数组还有一个方法就是将传递进入的参数插入到数组的第一项,就是unshift方法。

 

View Code
1 var array = new Array(); //直接用new初始化
2   var array = new Array('football', 'basketball'); //在用new初始化的同时,进行赋值
3 var array = new Array('football', 'basketball'); //初始化时的长度为2,但是接下来可以进行动态增长。
4 document.write(array.join(','));//football,basketball
5 document.write('<br>');
6 document.write(array.join('sport'));//footballsportbasketball
7 document.write('<br>');
8 document.write(array.join('][')); //football][basketball
9 document.write('<br>');
10
11 //contact方法
12 document.write(array.concat('tennis').toString());//football,basketball,tennis
13 document.write('<br>');
14 document.write(array.toString()); //football,basketball
15 document.write('<br>');
16 //slice方法
17 array[2] = 'tennis';
18 array[3] = 'badminton';
19 array[4] = 'F1';
20 document.write(array.slice(2, 4).toString()); //输出第二项到第四项之间的数组项 tennis,badminton
21 document.write('<br>');
22 //数组实现栈的行为
23 array.length = 0; //重新将数组的长度设置为2
24 array.push('tennis');
25 array.push('basketball');
26 array.push('football');//football在栈顶,tennis在栈底。
27 document.write(array.toString());
28 document.write('<br>');
29 var popItem = array.pop();//弹出的是项:football
30 document.write(popItem);
31 document.write('<br>');
32 //数组实现队列的行为
posted @ 2011-03-15 10:49  雁北飞  阅读(231)  评论(0编辑  收藏  举报