JavaScript对象与多维数组

3

我对JavaScript非常陌生。我有一个Java对象,需要在JavaScript中创建相应的对象,但我无法实现:

 Map<String, String[][]> objectName

可能是 http://stackoverflow.com/questions/38567371/convert-multidimensional-array-to-object/38567745 的重复问题。 - Shakti Phartiyal
5个回答

4
var objectName = {
    'key1': [
      ['string1', 'string2'],
      ['string3', 'string4']
    ],
    'key2': [
      ['string5', 'string6']
    ]
}
console.log(objectName['key1'][0][0]) //string1

2
地图部分很简单:只需创建一个像这样的对象:
var mymap= {};

然后您可以像这样添加条目:
mymap["A"]= ...

或者

mymap.A= ...

现在是难点,2D字符串数组。不幸的是(或者幸运的是,这取决于你的观点),你可以不需要定义这样的对象。你只需要像这样即时创建它:

mymap["A"]= []; // this creates an empty array (first dimension)
mymap["A"][0]= []; // the array grows 1, containing a (2nd dim) empty array
mymap["A"][0].push("1");
mymap["A"][0].push("2"); // your first array contains one array of 2 strings
mymap["A"][1]= []; 
mymap["A"].push([]); // = mymap["A"][2]= []; 
// etc.

1
你可以这样做:

var objectName = {
    "first": [[1, 2], [2, 3]],
    "second": [[1, 2], [2, 3]]
};

1
 JSONObject json = new JSONObject(map);

1
JavaScript没有特殊的语法来创建多维数组。一个常见的解决方法是在嵌套循环中创建一个数组的数组。
以下示例代码说明了数组的数组技术。首先,该代码创建一个数组f。然后,在外部for循环中,将f的每个元素本身初始化为new Array();因此f成为一个数组的数组。在内部for循环中,设置所有新创建的“内部”数组中的所有元素f[i][j]为零。
var iMax = 20;
var jMax = 10;
var f = new Array();

for (i=0;i<iMax;i++) {
 f[i]=new Array();
 for (j=0;j<jMax;j++) {
  f[i][j]=0;
 }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接