Ich muss eine Funktion in JavaScript erstellen, die alle doppelten Buchstaben in einer Zeichenkette entfernt. Bisher konnte ich das machen: Wenn ich das Wort "Anaconda" habe, zeigt es mir als Ergebnis "Anaconda" wenn es "Kabeljau" zeigen soll. Hier ist mein Code:
%Vor%
Wenn Sie nur Zeichen zurückgeben möchten, die einmal in einer Zeichenfolge vorkommen, prüfen Sie, ob sich ihr letztes Vorkommen an der gleichen Position wie das erste Vorkommen befindet.
Ihr Code hat mindestens einmal alle Zeichen in der Zeichenfolge zurückgegeben, anstatt nur Zeichen zurückzugeben, die nicht mehr als einmal vorkommen. aber das weißt du ja schon, sonst gäbe es keine Frage ;-)
Wir können jetzt auch die Dinge mit der Filtermethode aufräumen:
%Vor%Arbeitsbeispiel: Ссылка
Noch eine andere Möglichkeit, alle Buchstaben zu entfernen, die mehrmals vorkommen:
%Vor%Erläuterung: Sie durchlaufen alle Zeichen in der Zeichenfolge einmal und ordnen jedes Zeichen der Häufigkeit zu, die es in der Zeichenfolge aufgetreten ist. Dann iterieren Sie über die Elemente (Buchstaben, die in der Zeichenfolge erschienen sind) und wählen nur diejenigen aus, die nur einmal auftraten.
Dieser Code hat mir geholfen, doppelte (wiederholte) Zeichen aus einer Zeichenfolge zu entfernen (auch wenn die Wörter durch Leerzeichen getrennt sind)
Link: Arbeitsprobe JSFiddle
%Vor% Dies sollte mit Regex funktionieren;
HINWEIS: Eigentlich weiß ich nicht, wie diese Regex funktioniert, aber ich kannte ihre "Kurzschrift",
also hätte ich dir die Bedeutung von /(.+)(?=.*?)/g;
besser erklärt.
Diese Regex gibt mir nur das duplizierte Zeichen in einem Array zurück, also habe ich es durchgeschleift, um die Länge der wiederholten Zeichen zu erhalten. Aber dies funktioniert nicht für Sonderzeichen wie "#" "_" "-",
, aber es gibt Ihnen das erwartete Ergebnis; einschließlich dieser Sonderzeichen if any
Der reguläre Ausdruck /([a-zA-Z])+$/
sucht nach:
([a-zA-Z]])
- Ein Buchstabe, der in der ersten Gruppe erfasst wird; dann
+
- unmittelbar darauf eine oder mehrere Kopien dieses Briefes; dann
$
- das Ende der Zeichenfolge.
Wenn Sie stattdessen /([a-zA-Z]).*?/
ändern, suchen Sie nach:
([a-zA-Z])
- Ein Buchstabe, der in der ersten Gruppe erfasst wird; dann
.*?
- null oder mehr Zeichen (das? bezeichnet so wenig wie möglich); bis
- es findet eine Wiederholung des ersten übereinstimmenden Zeichens.
Ein loopless, einzeiliger Ansatz (beachten Sie, dass dies die Zeichenreihenfolge NICHT erhält):
%Vor%Wenn Sie nur die eindeutigen Werte beibehalten möchten (und auch die Zeichenreihenfolge nicht beibehalten):
%Vor% Wir können die doppelten oder ähnlichen Elemente im String entfernen, indem wir for
loop verwenden und String-Methoden wie slice
, substring
, substr
Beispiel, wenn Sie doppelte Elemente wie aababbafabbb
:
Bitte lassen Sie mich wissen, wenn Sie zusätzliche Informationen wünschen.
Tags und Links javascript string duplicates