js数组
声明数组方法:
var beatles = Array(4); beatles[0] = "John"; beatles[1] = "Paul"; beatles[2] = "George"; beatles[3] = "Ringo"; var beatles = Array("John","Paul","George","Ringo");
声明数组不需要明确表明是在创建数组,用方括号把各个元素的初始值括起来就可以了。
var beatles = ["John","Paul","George","Ringo"];
数组元素不一定是字符串。还可以是布尔值和数值。
var lennon = ["John",1940,false];
数组元素的值还可以是另一个数组的元素。下面两条语句把beatles数组的第二个元素赋值为“Paul”:
var names = ["Ringo","John","George","Paul"]; beatles[1] = names[3];
数组还可以包含其他的数组!数组中的任何一个元素都可以把一个数组作为它的值:
var lennon = ["John",1940,false]; var beatles = []; beatles[0] = lennon;
上面beatles数组的第一个元素的值是另一个数组。要想获得那个数组里的某个元素的值,需要用更多的方括号。
beatles[0][0]的值是"John",beatles[0][1]的值是1940,以此类推。
关联数组:
传统数组每个元素的下标是一个数字,每增加一个元素,这个数字就以此增加1。如果在填充数组时只给出了
元素的值,这个数组就将是一个传统数组,它的各个元素的下标将被自动创建和刷新。
可以通过在填充数组时为每个新元素明确地给出下标来改变这种默认的行为。在为新元素给出下标时,不必
局限于使用整数数字。你可以用字符串。
var lennon = Array(); lennon["name"] = "John"; lennon["year"] = 1940; lennon["living"] = false;
这样的数组叫做关联数组。本质上,在创建关联数组时,你创建的是Array对象的属性。在js中,所有的变量
实际上都是某种类型的对象。比如,一个布尔值就是一个Boolean类型的对象,一个数组就是一个Array类型
的对象。在下面例子中,实际上是给lennon数组添加了name,year,living三个属性。理想情况下,你不应该
修改Array对象的属性,而应该使用通用对象(Object)。
对象创建方法:
var lennon = Object(); lennon.name = "John"; lennon.year = "1940"; lennon.living = "false";
使用花括号语法(比较简洁)
var lennon = {name:"John",year:1940,living:false};
用对象来代替传统数组的做法以为着可以通过元素的名字而不是下标数字来引用他们。
创建一个新的beatles数组,并用刚才创建的lennon对象来填充它第一个元素。
不需要使用beatles[0][0]那么多数就可以获得想要的元素。而是使用beatles[0].name得到值“John”。
var lennon = {name:"John",year:1940,living:false}; var beatles = Array(); beatles[0] = lennon;
可以把beatles数组也声明为对象而不是传统数组。
var beatles = {}; beatles.vocalist = lennon; alert(beatles.vocalist.name); /*输出john*/ alert(beatles.vocalist.year); /*输出1940*/ alert(beatles.vocalist.living); /*输出false*/