2017-03-08 106 views
2

我對JavaScript很陌生。我有以下的Java對象,我需要使用JavaScript創建等價的,但我無法做到這一點:帶有多維數組的Javascript對象

Map<String, String[][]> objectName 
+0

的可能的複製http://stackoverflow.com/questions/38567371/convert-multidimensional-array-to-object/38567745 –

回答

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

你可以這樣說:

var objectName = { 
    "first": [[1, 2], [2, 3]], 
    "second": [[1, 2], [2, 3]] 
}; 
1
JSONObject json = new JSONObject(map); 
1

的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; 
} 
} 
1

地圖部分很簡單:只需創建這樣一個對象:

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.