Օբյեկտի տարր ստանալիս սխալը JavaScript-ում
Ենթադրենք ունենք մի օբյեկտ.
let obj = {
a: 1,
b: 2,
c: 3,
d: 4,
e: 5,
};
Ենթադրենք ցանկանում ենք ստանալ այս օբյեկտից տարրը որոշակի բանալիով: Ենթադրենք այդ բանալիի անունը մուտքագրվում է օգտագործողի կողմից input դաշտում.
console.log(input.value);
Որոշ սկսնակ ծրագրավորողներ կատարում են հետևյալ սխալը. նրանք օբյեկտը բացահայտում են հանգույցով, հերթով համեմատելով բանալիները input դաշտի արժեքի հետ, ահա այսպես.
for (let key in obj) {
if (key === input.value) {
let elem = obj[key];
console.log(elem); // փնտրվող արժեքը
break;
}
}
Սակայն, այս առաջադրանքում հանգույցը լրիվ ավելորդ է: Քանի որ մենք կարող ենք պարզապես ստանալ մեր արժեքը բանալիով, ահա այսպես.
let elem = obj[input.value];
Անհրաժեշտության դեպքում կարելի է ավելացնել նման բանալիի առկայության ստուգում օբյեկտում.
if (obj[input.value] !== undefined) {
let elem = obj[input.value];
console.log(elem);
} else {
console.log('նման բանալի չկա օբյեկտում');
}