JavaScript-də obyekt elementinin alınmasında səhv
Tutaq ki, bizim müəyyən bir obyektimiz var:
let obj = {
a: 1,
b: 2,
c: 3,
d: 4,
e: 5,
};
Tutaq ki, biz bu obyektdən müəyyən bir açar vasitəsilə element almaq istəyirik. Tutaq ki, bu açarın adı istifadəçi tərəfindən inputa daxil edilir:
console.log(input.value);
Bəzi yeni başlayan proqramçılar aşağıdakı səhvi edirlər: onlar obyekti dövrə vasitəsilə gəzir, açarları növbə ilə inputun dəyəri ilə müqayisə edirlər, belə:
for (let key in obj) {
if (key === input.value) {
let elem = obj[key];
console.log(elem); // axtarılan dəyər
break;
}
}
Lakin, bu məsələdə dövr tamamilə lazımsızdır. Çünki biz sadəcə olaraq açarımız vasitəsilə dəyərimizi ala bilərik, belə:
let elem = obj[input.value];
Lazım olduqda, obyektdə belə bir açarın olub-olmadığını yoxlamaq əlavə edilə bilər:
if (obj[input.value] !== undefined) {
let elem = obj[input.value];
console.log(elem);
} else {
console.log('obyektdə belə bir açar yoxdur');
}