Supprimer les occurrences de mots en double dans une chaîne
Prendre la chaîne suivante à titre d'exemple:
var string = "spanner, span, spaniel, span";
De cette chaîne je voudrais trouver le double de mots, de supprimer tous les doublons d'en garder une occurrence du mot, puis en sortie de la version révisée de la chaîne.
Qui, dans cet exemple serait:
var string = "spanner, span, spaniel";
J'ai configuré un jsFiddle pour les essais de: http://jsfiddle.net/p2Gqc/
Noter que l'ordre des mots dans la chaîne n'est pas uniforme, ni de la longueur de chaque corde pour une regex ne va pas faire le travail ici, je ne pense pas. Je pense à quelque chose le long des lignes de découpage de la chaîne dans un tableau? Mais j'aimerais qu'il soit comme la lumière sur le client que possible et super rapide...
source d'informationauteur CLiown
Vous devez vous connecter pour publier un commentaire.
Comment quelque chose comme cela?
fractionner la chaîne, obtenir le tableau, de le filtrer pour retirer les doublons, de se joindre à eux en arrière.
Violon
Pour les non porteurs des navigateurs, vous pouvez y remédier en ajoutant ceci dans votre js.
Voir Filtre
Si non des travaux ci-dessus pour vous voici une autre façon:
Ou si vous souhaitez qu'il soit dans une meilleure forme, essayez ceci:
Les deux autres réponses serait bien fonctionner, bien que la
filter
tableau de la méthode utilisée par le PSL a été ajouté dans ECMAScript 5 et ne sera pas disponible dans les anciens navigateurs.Si vous êtes à la manipulation des chaînes longues, puis en utilisant
$.inArray
/Array.indexOf
n'est pas le moyen le plus efficace de vérifier si vous avez vu un article avant (cela impliquerait que la numérisation de l'ensemble du tableau à chaque fois). Au lieu de cela, vous pouvez stocker chaque mot clé dans un objet et de profiter de hachage basée sur look-ups qui sera beaucoup plus rapide que la lecture par le biais d'un grand tableau.ce bloc de code permettra de supprimer les doublons de mots d'une phrase.
la première condition de l'instruction si je.e (i==arr.indexOf(arr[i])) comprendra la première occurence d'une répétition de mot pour le résultat(variale unique dans ce code).
la deuxième condition (arr.indexOf(arr[i])==arr.lastIndexOf(arr[i])) comprendra tous les non répétition des mots.
DÉMO
ci-dessous est un outil facile à comprendre et rapide code pour supprimer les doublons de mots dans une chaîne de caractères:
Aussi simple que cela peut résoudre votre problème. Espérons que cette aide. Cheers 🙂
Pour supprimer tous les doublons mots, j'utilise ce code:
//Vous pouvez facilement traverser l'unique à travers foreach.
J'aime ce pour trois raison.
Tout d'abord, il fonctionne avec IE8 ou n'importe quel autre navigateur.
Seconde. il est plus optimisée et la garantie d'avoir de résultat unique.
Dernier, Il travaille pour un Autre tableau de Chaîne qui a un espace Blanc dans leurs intrants, comme la
pour le cas ci-dessus il n'y aura qu' trois éléments dans le string[] qui serait parfaitement conservés.