如何在javascript数组中存储元素?

如何在javascript数组中存储元素?,javascript,arrays,Javascript,Arrays,我正在尝试建立一个纸牌游戏,其中两名玩家随机获得纸牌,获得最多纸牌的玩家获胜 我试着将生成的随机数放入数组中。这里的问题是,新的数字应该添加到数组中,但它会使数组变空。谁能帮帮我吗 var varCounter=1; var refVar=setInterval(函数(){ 如果(varCounter=5&&varCounter正如对您的问题的评论所指出的,您的数组player1和player2在每次迭代中都会被覆盖,因为它包含在迭代中,如果您想在每次迭代中都写些东西,我建议您将for循环如下

我正在尝试建立一个纸牌游戏,其中两名玩家随机获得纸牌,获得最多纸牌的玩家获胜

我试着将生成的随机数放入数组中。这里的问题是,新的数字应该添加到数组中,但它会使数组变空。谁能帮帮我吗

var varCounter=1;
var refVar=setInterval(函数(){

如果(varCounter=5&&varCounter正如对您的问题的评论所指出的,您的数组
player1
player2
在每次迭代中都会被覆盖,因为它包含在迭代中,如果您想在每次迭代中都写些东西,我建议您将
for
循环如下:

if (varCounter <= 4) {
  var randomnumber = Math.floor(Math.random() * (13 - 1 + 1)) + 1;
  var player1 = [];
  player1.push(randomnumber);

  document.write("<br>");
  document.write("player1 " + varCounter + "card"); // varCounter becomes your 1 2 3 4card
  document.write("<br>");
  document.write(player1);

  varCounter++;
}

if(varCounter如果您只需要所需的输出,请尝试此操作。我更改了与
varCounter
相关的代码,使其与
varCounter
%
配合良好,并将其制作成可运行的代码段

var-varCounter=0;
var refVar=setInterval(函数(){
if(varCounter<4){
var randomnumber=Math.floor(Math.random()*(13-1+1))+1;
变量player1=[];
player1.推送(随机数);
对于(变量i=0;i”);
文档。写入(“player1”+(varCounter%4+1)+“卡”);
文件。写(“
”); 文件编写(player1[i]); } varCounter++; }否则如果(varCounter>=4&&varCounter<8){ var randomnumber2=Math.floor(Math.random()*(13-1+1))+1; 变量player2=[]; 播放机2.推送(随机数2); 对于(变量i=0;i”); 文档。写入(“player2”+(varCounter%4+1)+“卡”); 文件。写(“
”); 文件编写(player2[i]); } varCounter++; }否则{ 净间隔(refVar); }
}这是我最后想到的

var-varCounter=0;
变量player1=[];
变量player2=[];
var refVar=setInterval(函数(){

如果(varCounter=4&&varCounter在您执行的每个循环上
var player1=[]
创建了一个新的数组。数组从来没有机会获得多个元素。@GabeRogan与闭包无关。非常感谢Gabe Rogan。即使将其更改为“让我不改变我的输出”。更改为“让”
也不会改变输出,因为在每个间隔中,你都会重新初始化你的
播放器正如@JJJ所说的数组。因此,循环中的
i
迭代器总是
0
。请尝试将这两个迭代器移出
setInterval()
。或者如果您只想显示
1 2 3 4卡片
,请使用
文档。编写(“玩家”+varCounter%4+“卡片”)
您不应该使用document.wrtie。这需要是
varCounter%4+1
。但最重要的是,这是否有效?@ionizer是的,当我检查它是否有效时。我可以看到长度在增加。是否有其他方法检查数组?不客气。不过,最后一件事是,您似乎不再像我一样需要
用于
循环在我编辑的答案中显示。只是一点优化:)我认为数组没有存储在第一个代码段中。如果我错了,请原谅,第一个数组只是为了修复
“player”+I+“card”
输出,所以它变成了
1card 2card 3card 4card
。所以是的,它总是只有一个元素,没有存储更多。