【发布时间】:2017-03-08 07:45:41
【问题描述】:
我对 JavaScript 很陌生。我在 Java 中有以下对象,我需要在 JavaScript 中创建等效对象,但我无法实现:
Map<String, String[][]> objectName
【问题讨论】:
标签: javascript java object
我对 JavaScript 很陌生。我在 Java 中有以下对象,我需要在 JavaScript 中创建等效对象,但我无法实现:
Map<String, String[][]> objectName
【问题讨论】:
标签: javascript java object
var objectName = {
'key1': [
['string1', 'string2'],
['string3', 'string4']
],
'key2': [
['string5', 'string6']
]
}
console.log(objectName['key1'][0][0]) //string1
【讨论】:
地图部分很简单:只需像这样创建一个对象:
var mymap= {};
然后你可以像这样添加条目:
mymap["A"]= ...
或
mymap.A= ...
现在是最难的部分,二维字符串数组。不幸的是(幸运的是,取决于你的观点)你可以也不需要定义这样一个对象。您只需动态创建它,如下所示:
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.
【讨论】:
你可以这样做:
var objectName = {
"first": [[1, 2], [2, 3]],
"second": [[1, 2], [2, 3]]
};
【讨论】:
JSONObject json = new JSONObject(map);
【讨论】:
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;
}
}
【讨论】: