Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用For循环将相同的信息推送到两个阵列_Javascript_Arrays - Fatal编程技术网

Javascript 使用For循环将相同的信息推送到两个阵列

Javascript 使用For循环将相同的信息推送到两个阵列,javascript,arrays,Javascript,Arrays,这是一个理论问题,如果我有一个JavaScript应用程序,其中我有多个玩家,每个玩家将有100个计算机生成的数学问题 在单人模式下,只需为单人生成问题即可: var player1Qs = []; for (i = 0; i < maxQustions; i++) { // Generate Question Object var question = {}; ... // Add to Array player1Qs.push(question); }

这是一个理论问题,如果我有一个JavaScript应用程序,其中我有多个玩家,每个玩家将有100个计算机生成的数学问题

在单人模式下,只需为单人生成问题即可:

var player1Qs = [];
for (i = 0; i < maxQustions; i++) {
   // Generate Question Object
   var question = {};
   ...
   // Add to Array 
   player1Qs.push(question);
}
var player1Qs=[];
对于(i=0;i
这没有问题。然而,当我使用与上面相同的想法在混音中添加第二个播放器时,我感到有点困惑。我正在尝试不使用多维数组来实现它,因为我试图使它尽可能简单,但这可能是不可避免的

因此,玩家2看起来与此类似:

var player1Qs = [];
var player2Qs = [];
for (i = 0; i < playerCount; i++) {
   for (j = 0; j < maxQustions; j++) {
      // Generate Question Object
      var question = {};
      ...
      // Add to Array 
      ???
   }
}
var player1Qs=[];
变量player2Qs=[];
对于(i=0;i

是否有一种方法可以使用for循环动态添加到这两个数组中?或者我需要一个包含玩家的数组,里面有一个用于提问的数组吗?

类似的东西应该可以解决这个问题:

// Make sure all players exist.
var players = [];
for (var i = 0; i < playerCount; i++) {
    players.push({ name: "Player " + i, questions: [] });
}

// Create questions
for (var i = 0; i < maxQuestions; i++) {
    // Generate Question Object
    var question = {};
    // Do stuff with this question

    // Assign the current question to all players.
    for (var j = 0; j < playerCount; j++) {
        players[j].questions.push(question);
    }
}
//确保所有玩家都存在。
var=[];
对于(变量i=0;i
按照这种方法,我假设您有动态播放器及其阵列:-

var data = {};
var player = [1,2]
var c = [1,2,3,4,5]

  for(j=0;j<player.length;j++)
  {
    data['players'] = player;
    data['questions'] = c
  }

console.log(data)
var data={};
var player=[1,2]
变量c=[1,2,3,4,5]
对于(j=0;j
我正在尝试不使用多维数组来实现它,因为我试图使它尽可能简单

我认为二维数组是最简单的用例,正如您在问题中所建议的:


或者我需要一个包含玩家的数组,里面是一个数组 有问题吗

答案是肯定的(至少如果你想保持简单的话)。玩家数组将保留所有玩家,每个玩家可以有100个问题

var maxQustions=100;
var玩家=[]
变量player1Qs=[];
变量player2Qs=[];
玩家。推(玩家1q);
玩家。推(玩家2q);
对于(i=0;i}
您想添加相同的问题集吗?如果您只有两个数组,您可以将其推送到这两个数组中。如果有更多问题,我建议创建玩家数组,然后在该数组中循环并推送。“或者我需要一个包含玩家的数组,并在该数组中放置问题?”-是的,是的,我想为每个玩家添加相同的问题集,这样他们都有自己的进度路线-这将为每个玩家添加相同的问题?看起来是这样,但我认为我只是重复检查?是的,你在
I
循环的每次迭代中创建的问题将添加到eve中r玩家。谢谢-我来试试:)@DHRUVGUPTA:这就是OP想要的。让OP看一看你自己的答案,在接受的答案上是不太好的。哦,我很抱歉@Cerburs,但我只是想向他展示我的简短方法:)我不会总是有第二个玩家-有时我只有一个玩家和一个CPU对手-这就是为什么我试图避免第二个推为什么你在那里使用循环?对于循环的每个迭代,您都在做不同的事情。我还应该使用什么。@Cerburs这是错误的,因为您投了反对票。不公平。@DHRUVGUPTA:好好看看
for
循环<在您的示例中,code>data['players']
设置为
player
,两次。如果删除
for
循环,只保留两行
数据[''']
行,代码将给出完全相同的结果。这与嫉妒无关。