ობიექტის ელემენტის მიღების შეცდომა 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('აღნიშნული გასაღები არ არის ობიექტში');
}