2012-08-02 79 views
0

我試圖在另一個數組裏面創建一個簡單的數組。Javascript創建數組到另一個數組?

對不起,因爲我是一個有點新的這一點,但我試圖插入如下:

"m1":["username"] 

到一個名爲空數組:

var mg = {} 

,使它看起來這樣,

var mg = {"m1":["username"]} 

我試圖插入它像這樣,

function insertPlayer(mid, user){ 
mg.push(mid = [user]); 
} 

insertPlayer("m1", "username") 

我正在使用推送功能,但它似乎完全不理我。

這就是我想要的:

enter image description here

隨着我所用的功能,我得到這樣的:

enter image description here

如果我能得到它,我想要的方式,我可以輕鬆地通過撥打mg["m1"]

輕鬆獲取'm1'內的用戶名列表我確定t這是一個簡單的解決方法,但我無法找到它。我一直在研究大約30分鐘,並決定在這裏問。謝謝!

回答

1

mg是一個對象,而不是一個陣列,它不具有.push方法。

而不是mg.push(mid = [user]);,它應該是mg[mid] = [user];

之後,mg.mid是一個數組,如果要添加新用戶到它,你可以使用.push

mg[mid].push(user); 

所以功能將在下面想:

// pass mg as a parameter is better than use it as a global in function 
function insertPlayer(mg, mid, user){ 
    if (mg[mid]) { 
    mg[mid].push(user); 
    } else { 
    mg[mid] = [user]; 
    } 
} 
+0

謝謝,這有助於解決問題,但它不是說「m1」,而是「中期」。有沒有辦法來解決這個問題? http://www.imgbomb.com/i/d15/nu7b7.png – Alex 2012-08-02 07:38:40

+0

@Alex檢查我添加的代碼,使用'mg [mid]'而不是'mg.mid'。 – xdazz 2012-08-02 07:39:25

+0

謝謝!我也會接受這一點。 – Alex 2012-08-02 07:41:17

0
var mg = {'m1': []}; 

然後嘗試mg[mid].push(user);代替mg.push(mid = [user]);

相關問題