问题是我需要动态添加多维数组,请看以下示例:
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使其表现得像数组一样。