Entfernen Sie doppelte Zeichen aus der Zeichenfolge

8

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%     
Zlatko Soleniq 12.12.2012, 13:47
quelle

18 Antworten

7

%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 ;-)

    
Cerbrus 12.12.2012 13:52
quelle
4

Wir können jetzt auch die Dinge mit der Filtermethode aufräumen:

%Vor%

Arbeitsbeispiel: Ссылка

    
masterspambot 13.03.2016 23:20
quelle
3

wollte nur meine Lösung zum Spaß hinzufügen:

%Vor%     
Aaron 23.08.2016 15:47
quelle
2
%Vor%     
user2923052 29.09.2016 03:40
quelle
1

DEMO

%Vor%     
mplungjan 12.12.2012 14:50
quelle
0

Noch eine andere Möglichkeit, alle Buchstaben zu entfernen, die mehrmals vorkommen:

%Vor%

Live-Testfall .

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.

    
Shadow Wizard 12.12.2012 14:00
quelle
0
%Vor%     
closure 12.12.2012 14:02
quelle
0

Ich habe FF / Chrome, auf dem das funktioniert:

%Vor%

Was Sie wiederverwenden können, wenn Sie eine Funktion schreiben wie:

%Vor%

Für ältere Browser, denen map , filter etc fehlt, vermute ich, dass sie von jQuery oder prototype emuliert werden könnten ...

    
Faiz 12.12.2012 13:58
quelle
0

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%     
FBN10040 21.06.2013 15:34
quelle
0

Hier ist, was ich verwendet habe - habe es nicht für Leerzeichen oder Sonderzeichen getestet, sollte aber für reine Strings funktionieren:

%Vor%     
asetniop 11.12.2014 18:22
quelle
0

Ich bin gerade auf ein ähnliches Problem gestoßen (die Duplikate finden). Verwenden Sie im Wesentlichen einen Hash, um die Anzahl der Zeichenauftritte zu verfolgen, und erstellen Sie eine neue Zeichenfolge mit den "One-Hit-Wonders":

%Vor%

Verwendung :

%Vor%     
thor2k 08.08.2016 16:15
quelle
0

Mit lodash :

%Vor%     
Lukasz Wiktor 14.11.2016 15:00
quelle
0

Versuchen Sie diesen Code, es funktioniert:)

%Vor%     
jayad aadrit 17.06.2017 20:23
quelle
0

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

%Vor%

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.

    
akolliy 19.09.2017 19:55
quelle
0
%Vor%

Bitte überprüfen Sie hier: Ссылка

    
Hemanth 28.09.2017 07:01
quelle
0

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%     
user3163495 06.04.2018 15:43
quelle
-1
%Vor%     
Vishal Aggarwal 21.02.2016 12:31
quelle
-1

Wir können die doppelten oder ähnlichen Elemente im String entfernen, indem wir for loop verwenden und String-Methoden wie slice , substring , substr

extrahieren

Beispiel, wenn Sie doppelte Elemente wie aababbafabbb :

entfernen möchten %Vor%

Bitte lassen Sie mich wissen, wenn Sie zusätzliche Informationen wünschen.

    
Netikar Sundeep 22.03.2016 09:06
quelle

Tags und Links