javascript - 检测之前是否已输入过输入内容

标签 javascript arrays loops

最近我在检查某个输入(玩家姓名)是否已被输入多次时遇到问题。这不是数据库内的,而是基于 JavaScript 中包含的数组。经过几次谷歌搜索后我一直在使用的是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++;
    }
};

您推荐什么检测方法?我尝试过循环,但也不起作用。

编辑:更新了代码。还是不行!

最佳答案

试试这个 - 记下 ) 的放置位置:

if(!(players.indexOf($(".name").val()) > -1)) {

而不是:

if(!(players.indexOf($(".name")).val() > -1)) {

实际上,为了可读性,这会更好:

var name = $('.name').val();
if ( players.indexOf(name) == -1)) {

一般来说,尝试添加 console.log 和断点来查找错误...

关于javascript - 检测之前是否已输入过输入内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24987088/

相关文章:

Javascript 以干净的方式从数组中删除对象元素(不留下空幽灵)

arrays - 剖析这段代码,解释 - 检查数组是否是另一个数组的子集

javascript - 在 Javascript 中使用数组作为值创建对象数组

javascript - 为什么函数返回未定义?

javascript - 我怎样才能每页有多个小部件?

python - 根据 for 循环中的位置将直方图存储在一个大数组中

Python 交互式循环中断

javascript - 如何在 ASP.NET MVC 应用程序中组织 JavaScript 代码

javascript - 取消方法内默认的onbefoarunload弹窗消息

c - 为什么 while 循环不能正常工作?