Profile Lookup can't figure out why its not working

Tell us what’s happening: somebody please hellp me figure out what i am doing wrong here

Your code so far

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
    var returnValue;

    for (var i = 0; i < contacts.length; i++) {

        if (contacts[i].firstName == name && contacts[i].hasOwnProperty(prop) == false) {

            returnValue = "No such property";
        else if (contacts[i].firstName == name && contacts[i].hasOwnProperty(prop)) {
            returnValue = contacts[i][prop]
        else {
            returnValue = "No such contact"

        // Only change code above this line
    return returnValue;
// Change these values to test your function
lookUpProfile("Kristian", "lastName");

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36.

Link to the challenge:

Hey there,
I’m on a train and writing from my phone so I haven’t tried what I’m going to tell you.
I think that what is happening is everyone you loop, you are assigning a new value to your variable. So your returnValue’s value is the last value after the loop is finished. That’s one thing

The second thing is if you check for both first name and hasproperty, it forces you to loop through everything without ever stopping once it finds the right information.
How about nesting two it’s?

If the first name exists
      If : Find the property. Return the info
     Else :no property return "no such property"
Else: return "no name or whatever it was"

Let me know how this works!
Gotta go!

The problem is that you only ever check the ifrst item in contacts. Your loop is written to always return something. Returning a value exits a function.

Thank you all so much I was able to fix it.
Turns out I had to restructure my if statements

Congratulations! Happy coding.