Σφάλμα λήψης στοιχείου αντικειμένου σε JavaScript
Ας υποθέσουμε ότι έχουμε ένα αντικείμενο:
let obj = {
a: 1,
b: 2,
c: 3,
d: 4,
e: 5,
};
Ας υποθέσουμε ότι θέλουμε να πάρουμε από αυτό το αντικείμενο ένα στοιχείο με βάση ένα συγκεκριμένο κλειδί. Ας υποθέσουμε ότι το όνομα αυτού του κλειδιού εισάγεται από τον χρήστη σε ένα πεδίο εισαγωγής:
console.log(input.value);
Μερικοί αρχάριοι προγραμματιστές κάνουν το ακόλουθο λάθος: διασχίζουν το αντικείμενο σε έναν βρόχο, συγκρίνοντας ένα-προς-ένα τα κλειδιά με την τιμή του πεδίου εισαγωγής, έτσι:
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('δεν υπάρχει τέτοιο κλειδί στο αντικείμενο');
}