Javascript 的数组Array,既是一个数组,也是一个字典(Dictionary)。先举例看看数组的用法。
var a = new Array();a[0] = "Acer";a[1] = "Dell";for (var i in a) { alert(i);}
上面的代码创立了一个数组,每个元素都是一个字符串对象。然后对数组进行遍历。注意 i 的结果为 0 和 1,a[i] 的结果才为字符串。下面再看一下字典的用法。
var computer_price = new Array();computer_price["Acer"] = 500;computer_price["Dell"] = 600;alert(computer_price["Acer"]);
我们甚至可以同样象上面那样遍历这个数组(字典)
for (var i in computer_price) { alert(i + ": " + computer_price[i]);}
这里的 i 即为字典的每个键值。输出结果为:
Acer: 500
Dell: 600
另外 computer_price 是一个字典对象,而它的每个键值就是一个属性。也就是说 Acer 是 computer_price 的一个属性。我们可以这样使用它:
computer_price.Acer
再来看一下字典和数组的简化声明方式。
var array = [1, 2, 3]; // 数组var array2 = { "Acer": 500, "Dell": 600 }; // 字典alert(array2.Acer); // 500
这样对字典的声明是和前面的一样的。在我们的例子中,Acer又是键值,也可是作为字典对象的属性了。
下面再来看看如何对一个对象的属性进行遍历。我们可以用 for in 来遍历对象的属性。
function Computer(brand, price) {
this.brand = brand;
this.price = price;
}
var mycomputer = new Computer("Acer", 500);
for (var prop in mycomputer) {
alert("computer[" + prop + "]=" + mycomputer[prop]);
}
上面的代码中,Computer有两个属性,brand 和 price.所以输出结果为:
computer[brand]=Acer
computer[price]=500
上面的这种用法可以用来查看一个对象都有哪些属性。当你已经知道Computer对象有一个brand属性时,就可以用
mycomputer.brand
或 mycomputer[brand]
来获取属性值了。
总结:Javascript中的数组也可以用来做字典。字典的键值也是字典对象的属性。对一个对象的属性进行遍历时,可以用for in。