我试图用其他答案解决我的错误,但失败了。我有一个我认为是二维数组的简单示例,但它不断返回我未定义的错误。

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/

在此示例中我做错了什么,感谢您的帮助。

最佳答案

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

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


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

您也可以这样声明它:

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

关于javascript - JavaScript二维数组未定义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25522307/

10-10 05:51