Javascript Profile Lookup

Please format your code with triple backticks (explanation here).

Here are your issues (in the comments):

for (i = 0; i < contacts.length; i++) { // You didn't declare `i`
// properly - it now exists in the global scope (this isn't affecting
// the running of your code, but can often cause problems)
  if (contacts[i].firstName===firstName) {
    if (contacts[i][prop]===prop) { // Assuming the value passed in
// for `prop` was "likes", this would then be testing whether the value
// corresponding to the key "likes" for the profile being tested was
// the string "likes".
      return contacts[i][prop];
    } else if (contacts[i].hasOwnProperty(prop)===false) {
      return "No such property";
    }
  } else if (contacts[i].firstName!==firstName) {
    return "No such contact";
  } // This runs within _each_ iteration of the for loop, which means
// the function will return "No such contact" in all cases except the 
// case where the profile you're looking up is at index 0.
}