Error al obtener un elemento de un objeto en JavaScript
Supongamos que tenemos un objeto:
let obj = {
a: 1,
b: 2,
c: 3,
d: 4,
e: 5,
};
Supongamos que queremos obtener de este objeto un elemento por una clave específica. Supongamos que el nombre de esta clave es ingresado por el usuario en un input:
console.log(input.value);
Algunos programadores principiantes cometen el siguiente error: iteran el objeto en un ciclo, comparando secuencialmente las claves con el valor del input, así:
for (let key in obj) {
if (key === input.value) {
let elem = obj[key];
console.log(elem); // el valor buscado
break;
}
}
Sin embargo, en esta tarea el ciclo es completamente innecesario. Ya que simplemente podemos obtener nuestro valor por la clave, así:
let elem = obj[input.value];
Si es necesario, se puede agregar una verificación de la existencia de dicha clave en el objeto:
if (obj[input.value] !== undefined) {
let elem = obj[input.value];
console.log(elem);
} else {
console.log('no existe tal clave en el objeto');
}