J'ai un tableau :
myArray = [{'id':'73','foo':'bar'},{'id':'45','foo':'bar'}, etc.]
Je ne parviens pas à modifier la structure du tableau. On me passe un identifiant de 45, et je veux obtenir une barre pour cet objet dans le tableau.
Comment puis-je faire cela en JavaScript ou en utilisant jQuery ?
Je pense que le moyen le plus simple serait le suivant, mais il ne fonctionnera pas sur Internet Explorer 8 (ou antérieur) :
var result = myArray.filter(function(v) {
return v.id === '45'; // Filter out the appropriate one
})[0].foo; // Get result and access the foo property
Itérer sur n'importe quel élément du tableau. Pour chaque élément que vous visitez, vérifiez l'identifiant de cet élément. S'il y a une correspondance, renvoyez-le.
Si vous voulez juste le code :
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
}
Et la même chose en utilisant les méthodes Array d'ECMAScript 5 :
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];
}