javascript教程-数组
星期日, 五月 10th, 2009, 13:46 | YSjia 点击2670次前面讲过一次关于变量的教程,变量属于离散值。如果某个变量是离散的。它在任意时刻就只有一个值。如果想用一个变量来存储一组值,就需要使用数组(array)。
javascript里面数组要用关键字Array声明如下:
var aTest=Array(4);
var aTest=Array();
var aTest=Array("this is a","b","c");
var aTest=["this is a","b","c"];
var aTest=["this is a",123,false];
以上声明都是正确的,但是声明Array是个好的编程习惯。在这里可以看到,javascript数组跟声明变量是一样的,非常灵活,数组元素不必是字符串,也可以存入布尔值或是数组甚至是变量。
如果想要获得数组的元素,同样简单,只需标明下标,即可取得相应的元素。
var aTest=Array(); aTest[0]='a'; aTest[1]='b'; var temp=aTest[0]; alert(temp);
结果为a。这里需要注意的是数组的下标默认是从0开始而不是1。
关联数组
如果填充数组时只给出了元素的值,这个数组就将是一个数值数组,它的各个元素的下标将被自动创建和刷新。
当然这里有一种特殊的方法,就是填充时我们为每个新元素指定下标,便于读取,并且这种下标不一定是数字,可以是字符串。
var preson=Array(); preson["name"]="Will"; preson["age"]="20"; preson["location"]="American";
这称为关联数组(associrative array)。其实每个数组都可以看做是关联数组因为数组的每个下标都应着相应的元素,虽然这些都是系统自动生成的数字。所以数值数组可以看做关联数组的一个特例来看待。
关联数组的好处在于,可以通过数组的名字来访问数组元素,这样大大提高了数组的可读性。
二维数组、多维数组
在javascript里是没有这个概念的。其实在javascript里数组已经非常的灵活,上面也提到过,数组的元素可以是数值、字符串、布尔值甚至是数组。
e.g.实现如下数组
| 1 | 2 | 3 |
| 4 | 5 | 6 |
var darry=Array(); darry[0]=[1,2,3]; darry[1]=[4,5,6]; alert(darry[0][1]); alert(darry[1][1]);
但是,千万不能用darry[0][0]=1这样来赋值,这是完全错误的。
我们再做一个更加灵活的实验。
现在我要用一个关联数组来实现特殊的二维数组。
e.g.用数组来实现Beyong乐队(我最喜欢的乐队)的成员
var beyond=Array(); var members=Array(); members["leadsinger"]="黄家驹"; members["guitarist"]="黄贯中"; members["bassist"]="黄家强"; members["drummer"]="叶世荣"; beyond["vocallist"]=members;
这样,现在beyond["vocallist"]["leadsinger"]其值为黄家驹,beyond["vocallist"]["guitarist"]值为黄贯中。
javascript数组的灵活性为程序带来了很多的方便,可以利用这些特殊的方法使程序更加容易阅读,更加灵活。
如果你喜欢请+1
Tags: javascript
代码如诗,只可惜对我来说是天书!真该再充充电啦!落伍啦,平时不学!反省中……….
[回复]
‘代码如诗’很形象,我喜欢这句~:-)
[回复]
和数学里面有些相似
[回复]
数组可以看作高数里的矩阵的一种表现形式。
[回复]
好教程!期待更新!
[回复]
谢谢,有你的支持我就更有信心了,哈哈。
[回复]
看不懂,好痛苦啊
[回复]
慢慢来,也许有一天,突然一切变得如此简单。
[回复]
不知YSlove是做什么工作的网页设计?ui设计,学这些是不是都要学点javascript
[回复]
就好像关于我们里面介绍的一样,我是个打杂的啊(悲哀),前端的哪个领域我都想插一嘴:)
其实就好像我常说的一样,程序与设计其实都属于同一范畴(艺术),只是表现形式不同。两都需要花大量的时间去考量,但是如果你只专一门也不是问题。毕竟在哪个方向上走下去都会变得’资深’起来。还是要找到适合自己发展的才行。
[回复]
编程啊,以前读书时学过几种语言,没有一种是精通的,现在基本回到原位。
[回复]
读书时代的悲哀,我也是从那时过来的。只不过被社会这个老师又教育了一顿,才有点反省。
[回复]