【发布时间】:2019-03-07 01:41:57
【问题描述】:
对于 javascript,我有一个对象数组,我想查看用户的条目是否与我的数组中三个对象中的任何一个的属性中的 2 个匹配。出于某种原因,我的“for 循环”仅适用于第一个对象,但从不检查其他两个对象。我该如何解决这个问题?
class Customer {
constructor(fN, lN, bal, cID, pass) {
this.firstName = fN;
this.lastName = lN;
this.balance = bal;
this.customerID = cID;
this.password = pass;
}
}
const bankers = [];
bankers.push(new Customer("Jack", "Scott", 3689.21, "4552", "2811"));
bankers.push(new Customer("John", "Smith", 2500.00, "4553", "1234"));
bankers.push(new Customer("Albert", "Price", 100000.00, "4554", "6189"));
let userID = prompt(`Please enter your customer ID.`);
let userPass = prompt(`Please enter your password.`);
for (let i = 0; i < bankers.length; i++) {
if (bankers[i].customerID === userID && bankers[i].password === userPass) {
console.log('Yay'); break;
} else {
console.log('boo'); break;
}
}
我的“for 循环”仅在我为第一个客户测试时才有效。如果我尝试为其他两个输入客户 ID 或密码,则会失败。为什么会这样?我认为i 变量应该遍历所有 3 个对象
【问题讨论】:
-
@Ele 这是一个可能有害的编辑。您添加了报价。他们的描述表明这应该不是问题,但我们不确定。
-
无法用调整后的代码重现。它能够很好地找到第二个条目。
-
@WaliH:我正要进行相同的编辑,只是没有缺少引号并在评论中指向它。
-
我已经投票决定暂时关闭,因为问题中发布的代码有效。
-
错字是我在这里粘贴我的问题时。我的现有代码中确实有引号
标签: javascript arrays function object ecmascript-6