Je vous propose dans ce tuto de faire une recherche dans un array Json, à ce jour j’utilise deux méthodes, la première étant ma préférée.
Méthode 1 : Jquery.grep
1 2 3 4 5 6 7 8 9 10 11 12 13 |
var locs = [{ "id": 1, "text": "Chien" }, { "id": 2, "text": "Chat" }]; $(document).ready(function () { var idSearch = 1; var item = jQuery.grep(locs, function (n, i) { return (n.id == idSearch); }, false); if (item.length > 0) { var textClicked = item[0].text; console.log(textClicked); } )); |
On va chercher la ligne qui correspond à locs[n].id == 1, si on trouve on extrait le array qui correspond à la requête. Bien entendu si on trouve plusieurs enregistrements (item.length > 1) il faudra faire un for each afin d’afficher tous les enregistrements trouvés.
Méthode 2 : $.each
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
var locs = [{ "id": 1, "text": "Chien" }, { "id": 2, "text": "Chat" }]; $(document).ready(function () { var idClicked = 1; $.each(locs, function (i, v) { if (v.id == idClicked) { var textClicked = locs[i].text; console.log(textClicked); return false; // stop the loop } }); }); |
Cette méthode permet de trouver le premier enregistrement correspond à la recherche. Pour obtenir les mêmes avantages que la première méthode il faut créer un item, stocker le résultat dans ce dernier et inhiber la sortie du loop. Plus long à traiter car on scrute tous les enregistrements dans ce cas …