Trouble understanding the mistake in my code to Profile Lookup

Here is my code below, I don’t think it’s that different from the solution. It doesn’t work though.

//Setup
var 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 && contacts[i].hasOwnProperty(prop) == true){
           return contacts[i].prop;
       }else{
           return "No such property";
       }
    }
    return "No such contact";
// Only change code above this line
}

// Change these values to test your function
lookUpProfile("Akira", "likes");

you have to use bracket notation not the dot notation ,because here you are taking name and prop from the function arguments ,they are like variables
so that if you want access them you have to write them like this

contacts[i][prop] ;

thats one, but there’s more problems too

Your else statement execute both is the object doesn’t have the property but also if the name don’t match, so one of the two statements always execute and the function break when i is 0

Consider if you need to use an else if or nested if statements