Erro ao obter elemento de objeto em JavaScript
Suponha que temos um determinado objeto:
let obj = {
a: 1,
b: 2,
c: 3,
d: 4,
e: 5,
};
Suponha que queremos obter deste objeto um elemento por uma determinada chave. Deixe o nome desta chave ser inserido pelo usuário em um input:
console.log(input.value);
Alguns programadores iniciantes cometem o seguinte erro: eles iteram o objeto em um loop, comparando as chaves uma por uma com o valor do input, assim:
for (let key in obj) {
if (key === input.value) {
let elem = obj[key];
console.log(elem); // o valor procurado
break;
}
}
No entanto, nesta tarefa, o loop é completamente desnecessário. Pois podemos simplesmente obter o nosso valor pela chave, assim:
let elem = obj[input.value];
Se necessário, você pode adicionar uma verificação da existência de tal chave no objeto:
if (obj[input.value] !== undefined) {
let elem = obj[input.value];
console.log(elem);
} else {
console.log('não existe tal chave no objeto');
}