Je veux obtenir des valeurs uniques à partir de deux tableaux différents.
Deux tableaux sont comme ci-dessous dans JavaScript: P>
new array => {'a','c','d','e'}
5 Réponses :
Trouver Anignal Réponse: Différence de tableau JavaScript
Vous pouvez utiliser un Assurez-vous qu'il s'applique à votre cas, une fois qu'il ne permet aucun duplicates. P> var a = new JS.Set([1,2,3,4,5,6,7,8,9]);
var b = new JS.Set([2,4,6,8]);
a.intersection(b);//intersect will give you the common one
Merci, je veux obtenir des valeurs uniques à partir de deux matrices, pas de différence.
@Abhishek - Vérifiez le lien Définir en ce qu'il y a des opérations disponibles pour cela également
Je ne sais pas si vous avez les termes corrects. des valeurs uniques em> pour moi seraient des membres qui n'apparaissent qu'une seule fois dans l'une ou l'autre des matrices. Il semble que vous souhaitiez que des membres présents dans les deux tableaux (valeurs communes ou intersection em>), sur la base de votre exemple. Vous pouvez utiliser JQuery pour gérer cela. Vous pouvez le faire sans jQuery, mais je ne sais pas si le filtre indigène avec soulignement, il est facile à grep () code>
est votre ami. P> () code> et
indexofof () code> Les méthodes ont le meilleur support du navigateur . p>
_. Intersection (Arr1, Arr2) Code>. P>
@Alex Merci pour Ans, mais je reçois la console non définie .. Dans jsfiddle exemple .., j'ai utilisé jQuery 1.3.2.min.js dans ma candidature .. Est-ce une autre manière ..
@Abhishek qui signifie simplement que vous n'avez pas d'objet de console. Essayez ceci .
Vous n'avez pas besoin de filtrer () ou d'indexofof () pour utiliser un JavaScript uni. Les POJS seront beaucoup plus efficaces que celle de JQuery Grep i> et inarray i> fonctions.
@Robg Évidemment, mais ce ne sera pas aussi conceptuellement que le code JQuery sans eux. Vous devriez écrire vos propres boucles, ce qui n'est jamais aussi joli. :)
J'aimerais faire cette opération à l'aide de la prise en charge de la matrice associative dans JavaScript.
<script> var a=new Array; var b=new Array; a={'a','b','c','d','e'} b={'a','d','e','c'} var uniqueArray = new Array; var tempArray = new Array; var j = 0; for(var i = 0; i < a.length; i++) { if(!tempArray[a[i]]) { tempArray[a[i]] = true; uniqueArray[j++] = a[i]; } } for(i = 0; i < b.length; i++) { if(!tempArray[b[i]]) { tempArray[b[i]] = true; uniqueArray[j++] = b[i]; } } </script>
Comme ceci:
var a=['a','b','c','d','e']; //Use brackets var b=['a','d','e','c'] var c = a.concat(b).sort(); var uniques = {}; for(var i=0; i<c.length; i++){ uniques[c[i]] = true; } var uniquesArray = []; for(var u in uniques) uniquesArray.push(u)
J'aime cette solution pour trouver des valeurs "distinctes", mais pour moi "unique" signifierait que des valeurs qui apparaissent une fois dans l'une ou l'autre des matrices. Mais en passant par l'échantillon de la production attendue dans l'OP, je pense ce qui est vraiment recherché ici est des valeurs "communes", c'est-à-dire ceux qui existent dans les deux tableaux.
Je pense que vous pensez vraiment écrire: Dans tous les cas, vous pouvez trier les tableaux et obtenir les valeurs d'une qui ne sont pas dans l'autre et vice versa, puis concaténate les deux se jettent en un. Vous semblez gâté pour le choix, alors voici une belle version javascript de base qui devrait fonctionner dans la plupart des navigateurs. L'utilisation de nouvelles fonctionnalités des derniers navigateurs est certaine d'échec dans les navigateurs plus anciens. P> mais votre commentaire sur la première réponse indique que vous souhaitez que les éléments communs aux deux tableaux, Ce qui est plus simple: p> Vous devez déterminer quoi faire avec des doublons. Dans le premier cas, un deplicats sera traité comme unique s'il n'y a pas de duplicata dans l'autre tableau. Dans ce qui précède, des doublons n'ont pas d'importance, à moins qu'ils ne soient dupliqués dans les deux tableaux. P> P>
Merci à un @robig est-il plus rapide que la fonction Grep? Comment il va bien que la fonction jQuery grep ()
@Abhishek Il est presque toujours plus rapide de faire des choses sans une bibliothèque.
Merci beaucoup @robig, j'ai eu la différence que le temps d'exécution est plus rapide que Grep () il est en milliseconde.
+1 pour une belle réponse native. BTW, y a-t-il une raison pour laquelle vous ne vous casseriez pas à une étiquette par opposition à l'utilisation de trouvé code> comme un drapeau (ou avez-moi oublié quelque chose)?
@Abhishek Vous ne devriez pas choisir une chose sur une autre sur la différence de milliseconde. Choisissez ceux les plus lisibles.