Errore nell'ottenere un elemento di un oggetto in JavaScript
Supponiamo di avere un oggetto:
let obj = {
a: 1,
b: 2,
c: 3,
d: 4,
e: 5,
};
Supponiamo di voler ottenere da questo oggetto un elemento tramite una certa chiave. Supponiamo che il nome di questa chiave venga inserito dall'utente in un input:
console.log(input.value);
Alcuni programmatori principianti commettono il seguente errore: iterano l'oggetto in un ciclo, confrontando sequenzialmente le chiavi con il valore dell'input, in questo modo:
for (let key in obj) {
if (key === input.value) {
let elem = obj[key];
console.log(elem); // il valore cercato
break;
}
}
Tuttavia, in questo compito il ciclo è completamente superfluo. Dopotutto, possiamo semplicemente ottenere il nostro valore tramite la chiave, in questo modo:
let elem = obj[input.value];
Se necessario, si può aggiungere un controllo per verificare la presenza di tale chiave nell'oggetto:
if (obj[input.value] !== undefined) {
let elem = obj[input.value];
console.log(elem);
} else {
console.log('nessuna chiave corrispondente nell\'oggetto');
}