2

问题是我需要动态添加一个多维数组,请看下面的例子:

var list = [];
var listname;
var height;
var width;

list.push(listname);
list[listname] = height;
list[listname] = width;

上面的代码不是我所期望的,应该是 [listname => [[0]=>height,[1]=>width]],如果我不想为listname创建一个数组,我该怎么办,我可以动态添加一个多维数组吗?谢谢。

4

1 回答 1

4

不要将 Arrays 与Maps混淆。它们是不同的基本数据类型1

var myLists = {};       // name => array
var listname = "stuff"; // why not?
var height = 1;
var width = 2;

// there is no Object.push, but we can assign a property by name
myLists[listName] = [height];
// then we can Array.push into the array we just assigned
myLists[listName].push(width);

然后,我的列表:

{
   stuff: [1, 2]
}

1 JavaScript主要保持这种区别 - 如果一个人不向数组添加随机属性或以其他方式伪造一个对象以表现得像一个数组。

于 2013-03-14T01:41:01.890 回答