最近,我一直在检查输入(玩家名称)是否输入了多次。这不是数据库内的,而只是基于JavaScript中包含的数组。经过几次Google搜索后,我一直使用的是indexOf()函数。但是,这似乎不起作用。我的代码如下:
var numberPlayers = 1;
var players = [];
var AddPlayer = function() {
if(!(players.indexOf($(".name")).val() > -1)) {
players.push($(".name").val());
$(".players").append("<p>Player number " + numberPlayers + " is " + $(".name").val() + "</p>");
numberPlayers++;
}
};
您会推荐哪种检测方法?我已经尝试过循环播放,但是也不行。
编辑:更新的代码。还是不行!
最佳答案
您可以使用对象(读取Set / Hash)代替数组。无论如何它应该更快。
请注意,我还使用.text()来转义文本。
var numberPlayers = 1;
var players = {};
var AddPlayer = function() {
var newPlayer = $(".name").val();
if(!(newPlayer in players)) {
players[newPlayer] = true;
$(".players").append($("<p>").text("Player number " + numberPlayers + " is " + newPlayer));
numberPlayers++;
}
};