Javascript数组声明:new Array(),new Array(3),['a', 'b', 'c'] 创建不同行为的数组。
- 论坛
- Javascript数组声明:new Array(),new Array(3),['a', 'b', 'c'] 创建不同行为的数组。
11 浏览
Javascript数组声明:new Array(),new Array(3),['a', 'b', 'c'] 创建不同行为的数组。
考虑以下示例的Javascript代码:
`
a = new Array(); a['a1']='foo'; a['a2']='bar'; b = new Array(2); b['b1']='foo'; b['b2']='bar'; c=['c1','c2','c3']; console.log(a); console.log(b); console.log(c);
`
在Firebug控制台中的结果如下:
对于a(必须通过点击“+”按钮来展开“[]”):
`
[] a1 "foo" a2 "bar"
`
对于b:
`
[undefined, undefined]
`
对于c:
`
["c1", "c2", "c3"]
`
我的问题是:
- 我是否正确使用了array['key']='value'的语法?
- 为什么数组b没有按预期工作?
- 为什么数组a和c在控制台中显示不同?同时,jQuery似乎无法使用它的.each()方法迭代数组a。
- 你能推荐一些关于Javascript数组行为的好教程吗?
注意: Google Chrome的Firebug仅显示[]作为数组'a',没有展开的选项。
编辑:好吧,似乎Javascript中的数组只有数字键,所以将字符串作为键名添加到数组中会创建一个对象。但为什么jQuery的.each不能使用它呢?
`
$.each(a, function () { alert ('derp'); })
`
将此代码追加到脚本中,不会产生任何警报。