Javascript 为什么我只获取数组的最后一个元素作为输出?

Javascript 为什么我只获取数组的最后一个元素作为输出?,javascript,arrays,login,Javascript,Arrays,Login,我试着制作一个带有按钮的登录系统,用javascript显示哪些用户在线。 我键入一个名称,然后单击登录。 之后,我可以选择显示在线用户列表或键入其他名称。 我想要的是,当我点击ShowList时,我登录的所有在线用户的名单都会显示出来。 问题是我在列表中只得到了登录时的姓氏。 其他所有的名字都没有出现 如果运行下面的代码段并尝试登录多个名称,您将只获得登录时使用的姓氏: javascript 玩家列表; 函数登录{ var player=document.getElementById'log

我试着制作一个带有按钮的登录系统,用javascript显示哪些用户在线。 我键入一个名称,然后单击登录。 之后,我可以选择显示在线用户列表或键入其他名称。 我想要的是,当我点击ShowList时,我登录的所有在线用户的名单都会显示出来。 问题是我在列表中只得到了登录时的姓氏。 其他所有的名字都没有出现

如果运行下面的代码段并尝试登录多个名称,您将只获得登录时使用的姓氏:

javascript 玩家列表; 函数登录{ var player=document.getElementById'loginField'。值; var=新数组; players.pushplayer; playerlist=players.join; } 功能显示列表{ document.writeplayerlist; }
因为每次调用login方法时都会创建一个新数组。因此,您将丢失先前推送字符串的数组

将数组声明移到方法之外,以便它在对登录方法的多次调用之间保持不变

var players = []; 
function login()
{
   var player = document.getElementById('loginField').value;
   players.push(player);
   playerlist = players.join("<br>");
}

我还将新数组更改为[]。两者都是相同的,但都是json的创建者使用[]。谢谢@Rayon Dabre的建议。

啊,我明白了。非常感谢。克罗克福德不喜欢新的阵列,你们知道:很好。以前从未读过。谢谢你提到这件事。我更新了答案,加入了这个建议。