I am trying to solve the following Javascript Problem shown below. I have been trying to figure out what part of it is failing and have been unsuccessful for some time. I do have solutions provided by the initial tutorial but am unclear as to why this is not quite working.

*We have an array of objects representing different people in our contacts lists.A lookUpProfile function that takes name and a property (prop) as arguments has been pre-written for you. The function should check if name is an actual contact's firstName and the given property (prop) is a property of that contact. If both are true, then return the "value" of that property. If name does not correspond to any contacts then return "No such contact". If prop does not correspond to any valid properties of a contact found to match name then return "No such property".*

```
// 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 (var i=0; i<contacts.length; i++){ 

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

if(contacts[i][0]===name&&contacts[i][j]===prop){ return contacts[i][j]    ;}

else if (contacts[i]===name) {return "No such property";}

else return "No such contact";
} 
  }

// Only change code above this line
}

lookUpProfile("Akira", "likes");

```