我是javascript的新手,我被某人告知,他说“严格讲,javascript没有多维数组和关联数组”。但在一本书中,我看到以下内容javascript多维数组和关联数组
var my_cars=Array();
my_cars["cool"]="Mustang";
$a=Array(Array(0,1),2);
那么他的意见形式是错的?我对吗?
我是javascript的新手,我被某人告知,他说“严格讲,javascript没有多维数组和关联数组”。但在一本书中,我看到以下内容javascript多维数组和关联数组
var my_cars=Array();
my_cars["cool"]="Mustang";
$a=Array(Array(0,1),2);
那么他的意见形式是错的?我对吗?
JavaScript有数组,其元素可以是其他数组。
但是,JavaScript有Object
与属性,而不是关联数组。
[]
比Array()
好得多。另外,为什么不明确实例化一个Array
对象,然后依靠Array
返回一个新对象?Array
上设置属性cool
。$a
印?为什么没有new
运营商呢?请参见:JavaScript Multidimensional Arrays
请提出新问题之前使用搜索。
该行: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所说,买一本新书。
所有的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
感谢您提到它,非常好!我测试它更多,这是如何做一个非关联︰var myArray = new Array(); myArray [0] = {0:1};警报(myArray的[0] [0]);' – Melsi 2011-10-26 17:56:09
是,JS:对于任何不仅仅是使用Javascript进行测试的人来说,TGP是必不可少的读物。另外,MDC的JS参考是一个很好的资源。请参阅,例如:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array#section_20 – entropo 2011-04-29 01:34:16