JavaScript多维数组和关联数组

4

我是JavaScript的新手,有人告诉我,他说“严格来说,JavaScript没有多维数组和关联数组”。但在一本书中,我看到了以下内容:

var my_cars=Array();
my_cars["cool"]="Mustang";

$a=Array(Array(0,1),2);

所以他的观点是错误的吗?我是对的吗?
3个回答

5

JavaScript有数组,数组的元素可以是其他数组。

然而,JavaScript中有属性的Object,而不是关联数组。

购买更好的书

  1. []Array()要好得多。此外,为什么不显式地实例化一个Array对象,然后依赖于Array返回一个新对象?
  2. 示例正在设置Array上的属性cool
  3. 为什么使用$a标识符?为什么再次不使用new运算符?

1
是的,JS:TGP对于任何不仅仅是涉猎JavaScript的人来说都是必读的。此外,MDC的JS参考资料也是一个非常好的资源。请参见:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array#section_20 - entropo

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

谢谢提到它,太好了!我进行了更多的测试,这是如何为非关联数组做的:var myArray = new Array(); myArray[0] = {0:1}; alert(myArray[0][0]); - Melsi

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"]);

为了理解这是如何工作的,你可以查看我的关于数组和映射的博客文章
顺便说一句,正如@alex所说,买一本新书。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接