JavaScript二维数组未定义

时间:2014-08-27 08:25:13

标签: javascript arrays multidimensional-array

我试图用其他答案解决我的错误,但只是失败了。我有这个简单的例子,我认为它是二维数组,但它一直给我带来未定义的错误。

var city = 'London',
    country = 'England';

var locate = [];
locate['London']['England'] = ['Jhon','Mike'];

for (i = 0; i < locate[city][country].length; i++) {  
  console.log(locate[city][country][i]);
}

jsbin http://jsbin.com/pixeluhojawa/1/

在这个例子中我做错了什么,我将非常感谢你的帮助。

1 个答案:

答案 0 :(得分:2)

在为locate['London']['England']分配值之前,您必须确保locate['London']是对象:

var locate = {};
locate['London'] = {};
locate['London']['England'] = ['Jhon','Mike'];

注意我是如何使用对象文字({})而不是数组文字([])的。数组不支持这样的字符串键。您需要使用对象。

您也可以将其声明为::

var locate = {
    London:{
        England:["Jhon","Mike"]
    }
}