Salut tous le monde !
Alors voilà mon problème, j'ai une liste d'object comme ceci (il y en a qui 2 dans l'exemple, mais à termes il y en aura beaucoup plus):
[
{"id":1,
"nom":"Mol\u00e9cule 1",
"dateCreation":{"date":"2017-07-05 15:08:51.000000","timezone_type":3,"timezone":"Europe\/Paris"},
"dateModif":{"date":"2017-07-17 11:30:54.000000","timezone_type":3,"timezone":"Europe\/Paris"}
},
{"id":3,"
nom":"Mol\u00e9cule 2",
"dateCreation":{"date":"2017-07-10 13:17:43.000000","timezone_type":3,"timezone":"Europe\/Paris"},
"dateModif":{"date":"2017-07-19 13:38:19.000000","timezone_type":3,"timezone":"Europe\/Paris"}
}
]
et j'ai un tableau qui contient les ID :
[
[0] => 1,
[1] => 3
]
ce que j'aimerais obtenir c'est un tableau d'objects qui contiendrai les objects qui sont parmi les ID de mon tableau.
J'ai essayé en faisant :
var arrayMolecule = moleculesInputData.val().split("|");
var datas = [];
$.each(arrayMolecule, function (idMolecule) {
moleculesDatas.forEach(function (molecule) {
if(parseInt(idMolecule) == molecule.id){
datas.push(molecule);
}
})
})
console.log(datas);
mais je n'obtiens que le premier élément... j'ai surement du rater quelque chose.
Merci d'avance pour l'aide.
Ton soucis vient de la mauvaise utilisation de $.each
En effet, le premier paramètre ne retourne pas la valeur mais la "key". Donc dans ton cas 0 et 1.
Tu as donc le retour de "1" (puisque tu as 1 et 3).
Donc :
$.each(arrayMolecule, function (key, idMolecule) {
fonctionnera