问题是我需要动态添加多维数组,请看以下示例:

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

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


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

最佳答案

不要将数组与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);


然后,myLists:

{
   stuff: [1, 2]
}




1JavaScript基本上保持了这一区别-如果不向数组添加随机属性,或者不伪造一个Object使其表现得像数组一样。

07-24 19:28