日期:2014-05-16  浏览次数:20337 次

JS对象与关联数组初步
作者:zccst

其实,js的关联数组本周就是js简单的对象。

一,对象形式
对象形式,也叫关联数组。
var parts_type_array = {"cpu":"CPU", "memory":"内存", "disk":"硬盘", "flash":"FLASH", "networkcard":"网卡", "diskback":"硬盘背板", "motherboard":"主板", "arraycard":"阵列卡", "directcard":"直连卡", "fans":"风扇", "power":"电源"};
	for(key in parts_type_array){
		alert(key+'-------'+parts_type_array[key]);
	}

var parts_type_array2 = {"CPU":"cpu", "内存":"memory", "硬盘":"disk", "FLASH":"flash", "网卡":"networkcard", "硬盘背板":"diskback", "主板":"motherboard", "阵列卡":"arraycard", "直连卡":"directcard", "风扇":"fans", "电源":"power"};
	for(key in parts_type_array2){
		alert(key+'-------'+parts_type_array2[key]);
	}


二、数组形式
var array2 = new Array();
array2["A"] = "a";
array2["B"] = "b";
array2["C"] = "c";
for (key in array2) {   // 在输出正确数组前,会先输出许多函数信息
         alert(key + '=====' + array2[key]);
}

你的array2["A"]="a";
其实就是array2.A="a";
因为在数组的方括号里面只能填数字
所以你的赋值只是给你的array2添加了3个属性
分别是
array2.A="a"
array2.B="b"
array2.C="c"
而且你的循环都是用in来循环的
in的循环回输出这个对象的所有自定义属性
如果你用for(var i =0 ;i <array2.length;i++)的话
你什么都不会得到


三、使用对象循环取值
var name = "QQ";
	var d = {};
	d["d_0"] = "qq";
	d["d_1"] = "QQ";
	for (var j = 0; j < 2; j++){
		if(name == d["d_"+j]){
			alert("匹配成功");
		}
	}

不建议使用:
var name = "QQ";
	var name_0 = "qq";
	var name_1 = "QQ";
	for (var j = 0; j < 2; j++){
		if(eval("name == name_"+j)){
			alert("匹配成功");
		}
	}