//Setup
/*
L'exercice demande de noter "No such contact " si personne n'a ce prénom, "No such property" s'il existe un ou des contacts portant ce prénom mais aucun ne possede la propriété nommée en deuxième argument de la fonction. Dans le cas ou il un contact possédant a la fois ce prénom et cette propriété, il faut retourner la valeur de cette propriété.
Techniquement il y a plusieurs details importants.
1) contacts[i][prop] et pas contacts[i].prop, car prop est un nom de variable et pas une valeur.
2) dans l'expression contacts[i].firstName, comme cela apparait clairement dans contacts[i]["firstName"],
.firstName fait reference a une valeur, et dans l'expression contacts[i].firstName === firstName, la
deuxieme occurence de firstName, celle qui est apres le ===, fait reference a l'argument occupant le
deuxieme parametre de la fonction.
1) le cas ou il ne figure pas de tel prenom est le cas ou la boucle for a itere tous les contacts sans
s'arreter par l'operation return. donc apres l'accolade de la boucle for on ecrit return "No such contact.
Et surtout ne pas commettre l'erreur de mettre un else apres le else if, ce qui retournerait "No such
contact" apres avoir rencontre un contact dont le prenom ne correspond pas a l'argument entre dans le
parametre firstName de la fonction.
Tout ca donne de quoi se tromper plusieurs fois a un gros etourdi comme moi!
*/
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 lookUp(firstName, prop){//0
// Only change code below this line
for (var i = 0; i < contacts.length; i ++) {//1
//console.log(contacts[i].firstName," ", contacts[i][prop]);
if (contacts[i].firstName === firstName && contacts[i][prop] !== undefined) {//2
return contacts[i][prop];
}//-2
else if (contacts[i].firstName === firstName && !contacts[i][prop]) {//2
return "No such property";
}//-2
}
// Only change code above this line
return "No such contact";
}//-0
// Change these values to test your function
lookUp("Bob", "adress");
2 Responses
(I'm embarrassed but in programming I did not take off level zero ;()
Write a comment
You can use [html][/html], [css][/css], [php][/php] and more to embed the code. Urls are automatically hyperlinked. Line breaks and paragraphs are automatically generated.