我是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