Erreur lors de l'obtention d'un élément d'un objet en JavaScript
Supposons que nous ayons un objet :
let obj = {
a: 1,
b: 2,
c: 3,
d: 4,
e: 5,
};
Supposons que nous voulions obtenir de cet objet un élément par une certaine clé. Supposons que le nom de cette clé soit saisi par l'utilisateur dans une input :
console.log(input.value);
Certains programmeurs débutants commettent l'erreur suivante : ils parcourent l'objet dans une boucle, comparant tour à tour les clés avec la valeur de l'input, comme ceci :
for (let key in obj) {
if (key === input.value) {
let elem = obj[key];
console.log(elem); // la valeur recherchée
break;
}
}
Cependant, dans cette tâche, la boucle est complètement inutile. En effet, nous pouvons simplement obtenir notre valeur par la clé, comme ceci :
let elem = obj[input.value];
Si nécessaire, on peut ajouter une vérification de l'existence d'une telle clé dans l'objet :
if (obj[input.value] !== undefined) {
let elem = obj[input.value];
console.log(elem);
} else {
console.log('clé absente de l\\'objet');
}