2016-11-18 83 views
0

我有一些陣列,我想插入動態多維數組如何插入陣列多維的JavaScript

var multi = []; 
 

 
var group = 'fruit'; 
 
var fruit_name = 'apple'; 
 

 
multi[group][fruit_name].push({'berbiji' : 'ya', 'panen' : '3tahun'});

爲什麼錯誤這樣的「類型錯誤:多[組]是不確定的」

+1

指數只能在陣列 – Mahi

+0

嘛整數,這是一個哈希,而不是陣列。 – Mritunjay

回答

4

您正在嘗試使數組像對象一樣工作。如果你想使你的代碼的工作,比你應該寫這樣的:

var multi = {}; 
var group = 'fruit'; 
var fruit_name = 'apple'; 

multi[group] = {}; 
multi[group][fruit_name] = []; 
multi[group][fruit_name].push({'berbiji' : 'ya', 'panen' : '3tahun'}); 
+0

是的,它只是我的javascript項目的例子,iam逆境來解決這個問題,它的工作!謝謝! –

0

鍵(「果實」和「蘋果」)的名稱不是數字,所以它不是一個矩陣(數組的數組)而是一組嵌套對象。

嵌套陣列(鍵的數字):

multiArray = [[ 
    {'berbiji' : 'ya', 'panen' : '3tahun'}]] 
]] 
multiArray[0][0].panen === '3tahun' // true 

嵌套對象(鍵是字符串):

multiObject = { 
    fruit: { 
    apple: {'berbiji' : 'ya', 'panen' : '3tahun'} 
    } 
} 
multiArray[group][fruit_name].panen === '3tahun' // true 

無論哪種方式,嵌套對象或陣列需要發起之前可以分配鍵值。

要跟隨你的榜樣:

var multi = {} 
var group = 'fruit' 
var fruit_name = 'apple'; 
multi[group] = {} // same as multi.fruit = {} 
multi[group][fruit_name] = {'berbiji' : 'ya', 'panen' : '3tahun'} 
multi.fruit.apple.panen === '3tahun' // true