gpt4 book ai didi

Javascript:从数组中获取索引值

转载 作者:行者123 更新时间:2023-11-30 09:08:50 24 4
gpt4 key购买 nike

这是我参加的 Java 脚本类(class)...

我需要创建一个简单的用户登录脚本。当页面加载时,会弹出一个提示,询问用户名。如果输入了正确的用户名,则会显示另一个提示,要求输入密码。

如果用户名和有效,那么你是一个成功的信息,否则你会得到一个失败的信息。

我已经编写了所有代码,但在验证用户名和密码时遇到了问题。您可以在我的代码中看到我使用了两个数组列表。一个用于用户,另一个用于密码。当我运行我的代码时,如果我为 user1 输入正确的用户名和密码,它会验证,但是如果我输入 user1 和 user2 的密码,它仍然会验证。

<script type="text/javascript">
//Input from user
var userId = prompt("Enter UserID", "");
userId_lowercase = userId.toLowerCase();


//Username and Password Arrays
var userIdList = new Array();
userIdList[0] = "user1";
userIdList[1] = "user2";
userIdList[2] = "user3";

var passwordList = new Array();
passwordList[0] = "pass1";
passwordList[1] = "pass2";
passwordList[2] = "pass3";

//Process input and check for authentication

//Check for correct userId

var userIdFound;

for (index in userIdList)
{
if (userId_lowercase == userIdList[index])
{
userIdFound = "Y";
break;
}
}

if (userIdFound == "Y")
{
document.write("<p>" + userId + " was Found</p>"); ;
//Check for correct Password
var password = prompt("Enter Password", "");
var passwordFound;

for (index in passwordList)
{
if (password == passwordList[index]) // This is where I need help,
// how do I say
// "if password is from the passwordList && it matches the userId index selected"

{
passwordFound = "Y";
break;
}
}

if (passwordFound == "Y")
{
document.write("<p>Welcome to the class!</p>");
}
else
{
document.write("<p>Error: Password is not valid.</p>");
}//END Password Check

}
else

{
document.write("<p>" + userId + " was NOT found</p>");
}//END USERID Check

</script>

最佳答案

首先,我不会使用 for-in,我会使用一个简单的 for 循环来遍历数组。然后您可以存储与用户名匹配的索引以将其与密码数组进行比较:

var index;
var userIndex;
for (index = 0; index < userIdList.length; index++) {
if (userId_lowercase == userIdList[index])
{
userIndex = index;
userIdFound = "Y";
break;
}
}

然后,在你的密码循环中你会说:

if (password == passwordList[index] && index == userIndex)
{
passwordFound = "Y";
break;
}

这是解决问题的简单方法。我不知道你学到了多少,但你也可以使用对象数组:

var userLogins = [{user:"user1", password:"pass1"},...etc];

然后在询问名称和密码并查看它们是否匹配后循环遍历该数组一次:

for (index = 0; index < userLogins.length; index++) {
if (userLogins.user == userId_lowercase && userLogins.password == password) {
//Do stuff here
}
}

要记住的是,您必须以某种方式将用户名链接到密码。您当前执行此操作的方式是通过两个数组中的索引,但这并不能保证。以某种方式链接这两位信息会好得多,就像上面的对象数组一样。

关于Javascript:从数组中获取索引值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2255476/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com