我正在写一个自动柜员机控制台程序,验证用户与pin.Now当任何用户试图使用它时,它要求他们的个人识别码,并带来任何名称关联到特定的个人识别码,但我一直无法做到这一点。这是我在这个小项目中剩下的唯一一件事,因为我已经编写了其余的代码,他们正在工作okay.The下面是引脚验证的代码。
function Authentication(){
let LoginAcess = [
{"name" : "bradly cooper", "pass" : 1990},
{"name" : 'james berry', "pass" : 1989},
{"name" : "sarah lance", "pass" : 1980},
]
for (let records in LoginAcess){
eachRecord = LoginAcess[records];
console.log(eachRecord)
let pin = prompt("enter your 4 valid digit pin : ");
if (pin === eachRecord.pass){
console.log(eachRecord.name)
}
}
};
Authentication();发布于 2020-05-19 19:53:03
变量pin中的值是一个字符串。
if (pin === eachRecord.pass){
console.log(eachRecord.name)
}您正在比较字符串和数字。可以使用parseInt(管脚)或number (管脚)将字符串转换为数字
if (parseInt(pin) === eachRecord.pass){
console.log(eachRecord.name)
}发布于 2020-05-19 20:21:45
通过使用下面这段代码,您可以在不使用循环的情况下完成此操作,以获得更好的性能。
let LoginAcess = [
{"name" : "bradly cooper", "pass" : 1990},
{"name" : 'james berry', "pass" : 1989},
{"name" : "sarah lance", "pass" : 1980},
];
var pin ; // pin is input taken from user
var userName = (LoginAcess.find(({ pass }) => pass == pin)["name"]);您将获得作为输出的名称。如果你想得到整个对象作为输出,去掉""name"“。
发布于 2020-05-19 20:47:40
for...in将在属性对象上迭代:
for ( propertie in objet ) { ... }改为使用find():
let userIn = LoginAcess.find( element => element.pass == pin );https://stackoverflow.com/questions/61890045
复制相似问题