首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何迭代和比较对象中的数据

如何迭代和比较对象中的数据
EN

Stack Overflow用户
提问于 2020-05-19 19:34:05
回答 4查看 49关注 0票数 0

我正在写一个自动柜员机控制台程序,验证用户与pin.Now当任何用户试图使用它时,它要求他们的个人识别码,并带来任何名称关联到特定的个人识别码,但我一直无法做到这一点。这是我在这个小项目中剩下的唯一一件事,因为我已经编写了其余的代码,他们正在工作okay.The下面是引脚验证的代码。

代码语言:javascript
运行
复制
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();
EN

回答 4

Stack Overflow用户

发布于 2020-05-19 19:53:03

变量pin中的值是一个字符串。

代码语言:javascript
运行
复制
if (pin === eachRecord.pass){
    console.log(eachRecord.name)
}

您正在比较字符串和数字。可以使用parseInt(管脚)或number (管脚)将字符串转换为数字

代码语言:javascript
运行
复制
if (parseInt(pin) === eachRecord.pass){
    console.log(eachRecord.name)
}
票数 1
EN

Stack Overflow用户

发布于 2020-05-19 20:21:45

通过使用下面这段代码,您可以在不使用循环的情况下完成此操作,以获得更好的性能。

代码语言:javascript
运行
复制
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"“。

票数 1
EN

Stack Overflow用户

发布于 2020-05-19 20:47:40

for...in将在属性对象上迭代:

代码语言:javascript
运行
复制
for ( propertie in objet ) { ... }

改为使用find():

代码语言:javascript
运行
复制
let userIn = LoginAcess.find( element => element.pass == pin );
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61890045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档