我對JavaScript很陌生。我有以下的Java對象,我需要使用JavaScript創建等價的,但我無法做到這一點:帶有多維數組的Javascript對象
Map<String, String[][]> objectName
我對JavaScript很陌生。我有以下的Java對象,我需要使用JavaScript創建等價的,但我無法做到這一點:帶有多維數組的Javascript對象
Map<String, String[][]> objectName
var objectName = {
'key1': [
['string1', 'string2'],
['string3', 'string4']
],
'key2': [
['string5', 'string6']
]
}
console.log(objectName['key1'][0][0]) //string1
你可以這樣說:
var objectName = {
"first": [[1, 2], [2, 3]],
"second": [[1, 2], [2, 3]]
};
JSONObject json = new JSONObject(map);
的JavaScript沒有用於創建多維數組的特殊語法。常用的解決方法是在嵌套循環中創建一個數組數組
以下代碼示例說明了數組的陣列技術。首先,這段代碼創建一個數組f
。然後,在外循環中,f
的每個元素本身被初始化爲new Array()
;因此f
成爲一個數組數組。在inner 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;
}
}
地圖部分很簡單:只需創建這樣一個對象:
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.
的可能的複製http://stackoverflow.com/questions/38567371/convert-multidimensional-array-to-object/38567745 –