2013-02-18 92 views
0

我有以下位如果Java脚本,我想引用使用名字而不是数字多维数组,我想下面的代码将工作:引用多维数组字符串不是数字

var detail=new Array() 

    detail['Big Trailer']=new Array() 

    detail['Big Trailer']['Bill'] = 'driving to London' 

    detail['Big Trailer']['John'] = 'driving to Scotland' 

但当我尝试引用数组我得到了一个未定义为我所有的努力

Alert (detail['Big Trailer]['john']) 

我一定要参考这些阵列使用类似的详细编号[1,0],我能做些什么这跟弦?请帮忙吗?

+0

你真的尝试过吗?由于*会起作用,除了“Alert”行上的区分大小写和语法问题外。好吧,也许一个“香草对象”更适合于一个地图,但一个数组像其他对象一样工作(有一些特殊的属性)。 – 2013-02-18 18:34:58

+0

您正在给'['John']'写信,但正在阅读'['john']'。 JavaScript区分大小写。 – 2013-02-18 18:34:58

+0

谢谢,我修改了代码它的一切都很好,之前的错别字我确定它没有工作,但一切都很好 – Mick 2013-02-18 18:41:30

回答

4

你想要的对象,而不是一个数组:

var detail = {}; 
detail['Big Trailer'] = {}; 
detail['Big Trailer']['Bill'] = 'driving to London'; 
detail['Big Trailer']['John'] = 'driving to Scotland'; 

alert(detail['Big Trailer']['John']); // driving to Scotland 
4

一方面,数组是纯粹的数字指标。但是,由于数组是一种对象,因此可以通过字符串为其分配属性。

但是,上面的示例中的问题(假设缺少'是一个错字)是键是区分大小写的。如果您在一个地方输入'John',则必须在其他地方输入'John'

+0

同意。 “约翰”和“约翰”是同一个对象的完全不同的属性。 – 2013-02-18 18:37:06