Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.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中的数组检查输入的方法_Javascript_Arrays - Fatal编程技术网

包含不根据Javascript中的数组检查输入的方法

包含不根据Javascript中的数组检查输入的方法,javascript,arrays,Javascript,Arrays,首先,是Javascript的新手。。。努力写好代码! 作为对我正在编写的应用程序的一个测试,我希望通过提示符将用户名输入与一个数组进行检查,该数组将允许用户继续或阻止用户这样做 当我给变量赋值时,我可以得到正确过滤的包含项: var name, excluded_Persons; var name = "jim" function denyEntry () { var excluded_Persons = ["bob", "jim"]; if (excluded_Persons.

首先,是Javascript的新手。。。努力写好代码! 作为对我正在编写的应用程序的一个测试,我希望通过提示符将用户名输入与一个数组进行检查,该数组将允许用户继续或阻止用户这样做

当我给变量赋值时,我可以得到正确过滤的包含项:

var name, excluded_Persons;
var name = "jim"

function denyEntry () {

var excluded_Persons = ["bob", "jim"];

    if (excluded_Persons.includes(name)) {
    alert("You may not enter!!");
    enterName ();
    }

    else {
        allowEntry ();
    }
}
denyEntry ();

function allowEntry () {

    alert("You have been granted access!!");
}
返回“您不能进入!” 但是,当我包含允许用户输入名称的函数时

    var name, excluded_Persons;

function enterName () {
    var name = prompt("What is your name?").toLowerCase();
    }

enterName ();

function denyEntry () {

    var excluded_Persons = ["bob", "jim"];

    if (excluded_Persons.includes(name)) {
    alert("You may not enter!!");
    enterName ();
    }

    else {
        allowEntry ();
    }

}

denyEntry ();
用户输入的任何名称(包括“bob”和“jim”)都返回“您已被授予访问权限!”正在绕过includes函数


enterName函数或denyEntry函数中是否缺少参数?

您在函数
enterName()
中重新说明了名称,因此其范围仅限于该函数。使名称成为全局变量:

var name, excluded_Persons;
var name = "jim"

function denyEntry () {

var excluded_Persons = ["bob", "jim"];

    if (excluded_Persons.includes(name)) {
    alert("You may not enter!!");
    enterName ();
    }

    else {
        allowEntry ();
    }
}
denyEntry ();

function allowEntry () {

    alert("You have been granted access!!");
}
var名称,不包括的人;
函数名(){
name=prompt(“你叫什么名字?”).toLowerCase();
}
enterName();
函数denyEntry(){
var不包括人员=[“bob”,“jim”];
console.log(名称);
if(不包括(姓名)){
警告(“您不能输入!!”;
enterName();
}
否则{
allowEntry();
}
}

登革热()您应该停止在这里,并考虑为此使用服务器端解决方案。处理用户访问客户端是一种容易绕过的方法。请删除enterName函数中变量
name
前面的
var
。@devlnocontate,谢谢@LGSon,我正在开发的应用程序实际上并不涉及身份验证。如果是的话,我完全同意你的看法。第一行声明名称为全局名称。问题是enterName函数中有一个同名的局部变量。Closer。您已经声明了两次
var name
。拆下第二个。