Hey, you are close. Have a look at this line: if (prop == contacts[i][prop]) {. You are checking if prop (which is the name of a property) is equal to `contacts[i][prop] (which is the value of that property. So you are comparing the name with the value, which will return false. You should check if that property exists.
target value = Jenny
property value = John or something
if the target value does not equal to the property value, doesn’t mean that the target does not exist.
if Jenny =/= John, then that doesn’t mean that I proved Jenny exist.
If I would ctrl-f then type adslfkjd then adslfkjd does not exist; because the browser search for every single occurances then return if it exist or not.
that’s the best hint that i can come up with without giving much. idk. Hope you can get something out of this.