0

我试图在另一个数组中创建一个简单的数组。

对不起,因为我对此有点陌生,但我试图插入以下内容:

"m1":["username"]

进入一个名为:

var mg = {}

所以它看起来像这样,

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

我试图像这样插入它,

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

insertPlayer("m1", "username")

我正在使用推送功能,但它似乎完全忽略了我。

这就是我要的:

在此处输入图像描述

使用我正在使用的功能,我得到了这个:

在此处输入图像描述

如果我能以我想要的方式得到它,我可以通过轻松调用来轻松获取“m1”中的用户名列表mg["m1"]

我确信有一个简单的解决方法,但我就是找不到。我已经研究了大约 30 分钟,并决定在这里问。谢谢!

4

2 回答 2

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];
  }
}
于 2012-08-02T07:33:10.020 回答
0
var mg = {'m1': []};

然后尝试mg[mid].push(user);代替mg.push(mid = [user]);

于 2012-08-02T07:32:02.610 回答