作者:zccst
js对象与数组的区别:
数组,是下标从0到n。
对象,是key-value。
原因:如果是对象,则js不会添加任何原生函数,但如果是数组则会添加原生函数。
[img]http://dl.iteye.com/upload/attachment/0084/4212/9dce89d5-4491-3d20-9228-a230a32cf31d.jpg[/img]
其实,js的关联数组本周就是js简单的对象。
一,对象形式
对象形式,也叫关联数组。
二、数组形式
你的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++)的话
你什么都不会得到
三、使用对象循环取值
不建议使用:
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("匹配成功");
}
}