【发布时间】:2022-01-17 16:56:33
【问题描述】:
我们的联系人列表中有一组代表不同人的对象。 我们有一个以名称为参数的lookUpProfile 函数。 该函数应检查姓名是否为实际联系人的名字。它将在控制台上打印联系人姓名,如果姓名与联系人的名字匹配,则返回 true,否则将打印 false。
我希望我的 while 循环遍历数组,直到 nameCheck 等于 true 或者我大于接触长度(也就是它到达数组的末尾)。
似乎我的 while 循环中的两个条件 (nameCheck == false || i
我知道你可以使用 for 循环来实现相同的结果,而我已经做到了。但是为了学习,我想知道为什么我的while循环不起作用。
提前非常感谢您。
const contacts = [
{
firstName: "Akira",
lastName: "Laine",
likes: ["Pizza", "Coding", "Brownie Points"],
},
{
firstName: "Harry",
lastName: "Potter",
likes: ["Hogwarts", "Magic", "Hagrid"],
},
{
firstName: "Sherlock",
lastName: "Holmes",
likes: ["Intriguing Cases", "Violin"],
},
];
function lookUpProfile(name) {
var nameCheck = false;
console.log(nameCheck);
var i= 0;
console.log (i);
while (nameCheck == false || i < contacts.length){
var nameOnContacts = contacts[i].firstName;
console.log(nameOnContacts);
nameCheck = nameOnContacts === name;
console.log(nameCheck);
i++;
console.log(i);
};
};
lookUpProfile("Akira");
控制台输出什么:
›
false
›
0
›
Akira
›
true
›
1
›
Harry
›
false
›
2
›
Sherlock
›
false
›
3
›
TypeError: contacts[i] is undefined (/index.js:28)
/index.html
【问题讨论】:
-
是的,这是预期的行为。使用逻辑 AND 而不是 OR。
标签: javascript arrays while-loop