JS对象与关联数组初步

作者:zccst

js对象与数组的区别:

数组,是下标从0到n。
对象,是key-value。

//如果如下形式:(在$.POST提交时会出错)
var a = [];
a['prop1'] = v1;
a['prop12'] = v2;

//应该改写为:
var a = {};
a['prop1'] = v1;
a['prop12'] = v2;

原因:如果是对象,则js不会添加任何原生函数,但如果是数组则会添加原生函数。

[img]http://dl.iteye.com/upload/attachment/0084/4212/9dce89d5-4491-3d20-9228-a230a32cf31d.jpg[/img]


其实,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("匹配成功");
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值