javascript, supprimer des éléments identiques de réseau
-
27-10-2019 - |
Question
Je fais un appel ajax dans un script de visionneuse qui retourne un formulaire.
lorsque le formulaire est chargé j'appelle var initial = $('form').serializeArray();
lorsque le formulaire est soumis j'appelle var final = $('form').serializeArray();
qui me donne deux tableaux d'objets, Ce que je veux maintenant faire est de comparer chaque objet dans les tableaux et supprimer ceux qui ne l'ont pas changé.
comment pourrais-je faire?
La solution
Je suppose que les deux tableaux auront la même longueur, et que les éléments seront dans le même ordre dans les deux tableaux. Dans ce cas, ce que vous devez faire est de regarder chaque élément du premier réseau et le comparer à l'élément correspondant du second réseau; si elles correspondent, puis retirer l'élément dans cette position à partir des deux tableaux.
Quelque chose comme cela devrait fonctionner (même si je ne l'ai pas testé):
var i = 0;
while (i < initial.length) {
if(initial[i] == final[i]) {
initial.splice(i,1);
final.splice(i,1);
}
else {
i++;
}
}
Autres conseils
Le meilleur moyen de le faire, je pense
var len = initial.length, i=0, changed=[];
/* I hope initial.length==final.length*/
for(i; i<len; i++){
/* 0== '' */
if (initial[i]===final[i])
changed[i] = final[i];
}
// joue maintenant avec
modifié
J'ai confondu abou la question
fait .splice () Réorganiser les index?