我看过其他问题,所有示例如下

var arr = [1, 2, [3, 4], 5];

alert (arr[2][1]);


但是我想要这样的东西

var mmo = [];

mmo["name"] = "steve";
mmo["name"]["x"] = "20";
mmo["name"]["y"] = "40";

alert(mmo["name"]["y"]); // should alert 40 but its undefined

最佳答案

同一项目中不能同时有值和数组。

要使用插入数字索引的命名属性,请使用对象而不是数组。

将对象作为属性,然后可以在该对象中放置属性:

var mmo = {};

mmo["name"] = {};
mmo["name"]["x"] = "20";
mmo["name"]["y"] = "40";


如果要在对象中使用数组,则可以使用数字索引:

var mmo = {};

mmo["name"] = [];
mmo["name"][0] = "20";
mmo["name"][1] = "40";


如果要在数组中使用数组,则全部为数字索引:

var mmo = [];

mmo[0] = [];
mmo[0][0] = "20";
mmo[0][1] = "40";


数组也是一个对象,因此您可以使用数组并将属性放入其中,但这通常会造成混淆。

09-11 19:44