Tell us what’s happening:
Describe your issue in detail here.
**Your code so far**
// Setup
const contacts = [
{
firstName: "Akira",
lastName: "Laine",
number: "0543236543",
likes: ["Pizza", "Coding", "Brownie Points"],
},
{
firstName: "Harry",
lastName: "Potter",
number: "0994372684",
likes: ["Hogwarts", "Magic", "Hagrid"],
},
{
firstName: "Sherlock",
lastName: "Holmes",
number: "0487345643",
likes: ["Intriguing Cases", "Violin"],
},
{
firstName: "Kristian",
lastName: "Vos",
number: "unknown",
likes: ["JavaScript", "Gaming", "Foxes"],
},
];
function lookUpProfile(name, prop) {
// Only change code below this line
for(let i = 0; i < contacts.length; i++){
if(contacts[i]["firstName"] === name){
if(contacts[i].hasOwnProperty(prop)){
return contacts[i][prop];
}else{
return "No such property";
}
}else{
return "No such contact";
}
}
// Only change code above this line
}
lookUpProfile("Akira", "likes");
**Your browser information:**
User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36
Challenge: Profile Lookup
Link to the challenge:
Sorry, my initial question was not very good because your code example isn’t formatted very well and I was fooled a little.
function lookUpProfile(name, prop) {
// Only change code below this line
for (let i = 0; i < contacts.length; i++) {
if (contacts[i]["firstName"] === name) {
if (contacts[i].hasOwnProperty(prop)) {
return contacts[i][prop];
} else {
return "No such property";
}
} else {
return "No such contact";
}
}
// Only change code above this line
}
Now that we have better formatting, how many times will your for
loop execute? Remember, a return
statement immediately stops the function and returns a value.
my for loop would run 4 times , evaluating the first name property of all the objects in the contacts array and checking if they are equal to name. But when i run the test it fails and i’ve gone through the code a thousand times but can’t seem to see what is wrong.
Will it? I suggest you add a console.log to the beginning of the for
loop to make sure this is the case. Perhaps something like:
console.log('for loop: i = ', i);
If it is executing up to 4 times then you should see the value of i
increment from 0 toward 3, at least some of the time, right?
the for loop idid not run completely due to the return statements which ended the loop in the middle.