js中动态创建关联数组的问题
2011-10-24 15:41
381 查看
有时候大家在js中可能会有需求创建关联数组,并动态添加关联数组,但是却发现遇到一些问题。
比如:alert(arr.length)的时候没有任何输出以及用for循环遍历的时候也是没有任何输出,这到底是为什么呢?
请看下面两个例子:
例子一:
var array1 = { "A":"a","B":"b","C":"c" };
for (key in array1) { // 能够正常输出数组
alert('=1=1=====' + key);
alert('=1=2=====' + array1[key]);
}
例子二:
var array2 = new Array();
array2["A"] = "a";
array2["B"] = "b";
array2["C"] = "c";
for (var i=0;i<array2.length;i++) { // 在输出正确数组前,会先输出许多函数信息
alert('==1=====' + i);
alert('==2=====' + array2[i]);
}
第一个例子的数组能够正常输出,例子二的遍历却没有任何输出,这到底是为什么呢?
解释:
第一个例子并不是数组
而是创建了一个对象
循环输出的是这个对象的属性和值
第二个例子是数组
但是你把他当成一个对象来使用了
你的array2["A"]="a";
其实就是array2.A="a";
因为在数组的方括号里面只能填数字
所以你的赋值只是给你的array2添加了3个属性
分别是
array2.A="a"
array2.B="b"
array2.C="c"
要想输出例子二的数组元素,可采用如下方法:
for (key in array2) { //in循环会输出这个对象的所有自定义属性
alert('==1=====' + key);
alert('==2=====' + array2[key]);
}
如有不明白的地方,可与我联系!
比如:alert(arr.length)的时候没有任何输出以及用for循环遍历的时候也是没有任何输出,这到底是为什么呢?
请看下面两个例子:
例子一:
var array1 = { "A":"a","B":"b","C":"c" };
for (key in array1) { // 能够正常输出数组
alert('=1=1=====' + key);
alert('=1=2=====' + array1[key]);
}
例子二:
var array2 = new Array();
array2["A"] = "a";
array2["B"] = "b";
array2["C"] = "c";
for (var i=0;i<array2.length;i++) { // 在输出正确数组前,会先输出许多函数信息
alert('==1=====' + i);
alert('==2=====' + array2[i]);
}
第一个例子的数组能够正常输出,例子二的遍历却没有任何输出,这到底是为什么呢?
解释:
第一个例子并不是数组
而是创建了一个对象
循环输出的是这个对象的属性和值
第二个例子是数组
但是你把他当成一个对象来使用了
你的array2["A"]="a";
其实就是array2.A="a";
因为在数组的方括号里面只能填数字
所以你的赋值只是给你的array2添加了3个属性
分别是
array2.A="a"
array2.B="b"
array2.C="c"
要想输出例子二的数组元素,可采用如下方法:
for (key in array2) { //in循环会输出这个对象的所有自定义属性
alert('==1=====' + key);
alert('==2=====' + array2[key]);
}
如有不明白的地方,可与我联系!
相关文章推荐
- OC中动态创建可变数组的问题.有一个数组,数组中有13个元素,先将该数组进行分组,每3个元素为一组,分为若干组,最后用一个数组统一管理这些分组.(要动态创建数组).两种方法
- C# 动态创建数组,并且保持以前的数据不丢失的问题
- 有关firefox下js在table中动态创建form元素无法传值问题
- js-dom-动态创建html标签时,name属性的初始化问题
- C++ 二维动态数组创建及越界问题
- 有关动态创建释放二维数组,以及指向数组的指针问题集合
- JS:动态创建的几个问题
- 有关动态创建释放二维数组,以及指向数组的指针问题集合 .
- 有关firefox和chrome下js动态创建form元素无法传值的问题
- OC中动态创建可变数组的问题.有一个数组,数组中有13个元素,先将该数组进行分组,每3个元素为一组,分为若干组,最后用一个数组统一管理这些分组.(要动态创建数组).两种方法
- JS - 动态创建2维数组Array (例子源码)
- c++创建二维动态数组与内存释放问题
- JS动态创建元素的奇怪问题--待解决
- JS 给select下动态创建options的兼容问题
- OC中动态创建可变数组的问题.有一个数组,数组中有13个元素,先将该数组进行分组,每3个元素为一组,分为若干组,最后用一个数组统一管理这些分组.(要动态创建数组).两种方法
- js动态创建table节点并通过appendChild拼接子元素的问题
- OC动态创建的问题变量数组.有数组,在阵列13要素,第一个数据包阵列,每3元素为一组,分成若干组,这些数据包的统一管理。最后,一个数组.(要动态地创建一个数组).两种方法
- js实现动态创建txt框。今天学生问此问题,做个小例子,大家也说说还有什么实现的方法。
- js创建数组相关以及判断数组元素重复问题
- 关于JS获取不到动态创建的元素的id的问题