Έχω έναν πίνακα:
myArray = [{'id':'73','foo':'bar'},{'id':'45','foo':'bar'}, etc.]
Δεν μπορώ να αλλάξω τη δομή του πίνακα. Μου περνάει ένα id του 45
, και θέλω να πάρω το 'bar'
για αυτό το αντικείμενο στον πίνακα.
Πώς μπορώ να το κάνω αυτό σε JavaScript ή χρησιμοποιώντας την jQuery;
Νομίζω ότι ο ευκολότερος τρόπος θα ήταν ο ακόλουθος, αλλά δεν θα λειτουργήσει σε Internet Explorer 8 (ή νωρίτερα):
var result = myArray.filter(function(v) {
return v.id === '45'; // Filter out the appropriate one
})[0].foo; // Get result and access the foo property
Επανάληψη οποιουδήποτε στοιχείου του πίνακα. Για κάθε στοιχείο που επισκέπτεστε, ελέγξτε το id αυτού του στοιχείου. Εάν υπάρχει ταύτιση, επιστρέψτε το.
Αν θέλετε μόνο τον κωδικό:
function getId(array, id) {
for (var i = 0, len = array.length; i < len; i++) {
if (array[i].id === id) {
return array[i];
}
}
return null; // Nothing found
}
Και το ίδιο πράγμα χρησιμοποιώντας τις μεθόδους Array του ECMAScript 5's:
function getId(array, id) {
var obj = array.filter(function (val) {
return val.id === id;
});
// Filter returns an array, and we just want the matching item.
return obj[0];
}