问题描述
两个例子function test1() { var array1 = { "A":"a","B":"b","C":"c" }; for (key in array1) { // 能够正常输出数组 alert('=1=1=====' + key); alert('=1=2=====' + array1[key]); }}function test2() { var array2 = new Array(); array2["A"] = "a"; array2["B"] = "b"; array2["C"] = "c"; for (key in array2) { // 在输出正确数组前,会先输出许多函数信息 alert('==1=====' + key); alert('==2=====' + array2[key]); }}在test1中直接定义数组能够正常输出;而在test2中用Array 定义数组则会输出很多函数信息,这是为什么呢,两种数组定义的方式有什么区别呢?
解决方案
javascript 里 {}不能称作数组,应该属于object类型。而new Array 出来的是Array类型。虽然javascript 中任何类型都是object,但是Array 的实例中已经带有很多和array相关的实例方法。例如 indexOfslice。。。。var array2 = new Array(); 直接这样即可:var array2 = {};或var array2 = new Object();
时间: 2024-11-18 18:21:06