我是javascript的新手,我被别人告知,他说“严格说话,javascript没有多维数组和关联数组”。但是在一本书中,我看到了以下内容
var my_cars=Array();
my_cars["cool"]="Mustang";
$a=Array(Array(0,1),2);
那么意见表明他错了吗?我是对的吗?
答案 0 :(得分:5)
JavaScript有一些数组,其元素可以是其他数组。
但是,JavaScript的Object
具有属性,而不是关联数组。
[]
比Array()
好得多。另外,为什么不明确地实例化Array
对象,然后依靠Array
返回一个新对象?cool
。Array
$a
sigil?为什么不再使用new
运算符?答案 1 :(得分:4)
Javascript多维数组的所有解释似乎都非常复杂,经过近一个小时的研究,我发现了这个简单的例子:
var myArray = new Array();
myArray['row1'] = { 'col1':'BLARGH!!!', 'col2':'HONK!!!!' }
myArray['row2'] = { 'col1':'FOO!!!', 'col2':'BAR!!!!' }
myArray['row3'] = { 'col1':'FOUR!!!', 'col2':'GREGS!!!' }
document.write(myArray['row2']['col1'] + " - " + myArray['row3']['col2']);
//will output: FOO!!! - GREGS!!
我在这里找到了它:http://moblog.bradleyit.com/2009/06/create-multidimensional-associative.html
答案 2 :(得分:2)
行:my_cars["cool"]="Mustang";
实际上没有在数组中添加值。实际上它是为对象my_cars
添加新属性和值。以下代码也可以使用相同的代码:
var my_cars = new Function();
my_cars["cool"]="Mustang";
alert(my_cars["cool"]);
var c = new Object();
c["cool"]="Corvette";
alert(c["cool"]);
要了解其工作原理,您可以查看my blog post on arrays and maps。
顺便说一句,正如@alex所说,买一本新书。