599 Stimmen

Wie kann ich jeden Buchstaben eines Textes mit Javascript verarbeiten?

Ich möchte jeden Buchstaben einer Zeichenkette melden, weiß aber nicht, wie ich das anstellen soll.

Also, wenn ich es habe:

var str = 'This is my string';

Ich möchte die Möglichkeit haben, getrennt zu alarmieren T , h , i , s , usw. Dies ist nur der Anfang einer Idee, an der ich arbeite, aber ich muss wissen, wie ich jeden Buchstaben einzeln bearbeiten kann.

Ich dachte, ich müsste die Split-Funktion verwenden, nachdem ich getestet habe, wie lang die Zeichenfolge ist.

Wie kann ich das tun?

10 Stimmen

Vielleicht haben Sie danach gesucht: Seit ES6 gibt es for(const c of str) { ... } . Mehr dazu weiter unten in einer recht ausführlichen, aber nicht ausreichend hochgestimmten Antwort. PS: Der Link von @ARJUN funktioniert bei mir nicht.

19voto

Adriaan Stander Punkte 155899

Das können Sie versuchen

var arrValues = 'This is my string'.split('');
// Loop over each value in the array.
$.each(arrValues, function (intIndex, objValue) {
    alert(objValue);
})

18 Stimmen

Das ist immer noch eine Option, aber nicht sehr leistungsfähig. Setzen Sie jQuery nicht überall ein.

0 Stimmen

Verwenden Sie keine Bibliotheken, es sei denn, Sie brauchen sie wirklich.

16voto

papajson Punkte 141

Das neue JS ermöglicht dies:

const str = 'This is my string';
Array.from(str).forEach(alert);

1 Stimmen

Beste Antwort! Ich habe es intuitiv ausprobiert und es hat funktioniert, wollte es posten und habe dann festgestellt, dass ich zu spät bin)

15voto

Vajk Hermecz Punkte 4853

Wenn Sie den Text auf Zeichenebene umwandeln und den umgewandelten Text am Ende zurückbekommen möchten, würden Sie etwa so vorgehen:

var value = "alma";
var new_value = [...value].map((x) => x+"E").join("")

Also die Schritte:

  • Teilen die Zeichenkette in ein Array (Liste) von Zeichen
  • Jedes Zeichen über einen Funktor abbilden
  • Das resultierende Array von Zeichen zur resultierenden Zeichenkette zusammenfügen

HINWEIS: Wenn Sie Leistung benötigen, gibt es wahrscheinlich bessere, optimiertere Lösungen für dieses Problem. Ich habe diese hier als sauberen Ansatz für den Codestil gepostet.

1 Stimmen

Dies ist eine der Lösungen, aber es ist keine optimale Lösung.

10voto

Pamsix Punkte 129

Eine weitere Lösung...

var strg= 'This is my string';
for(indx in strg){
  alert(strg[indx]);
}

4 Stimmen

Wenn Sie nur das Zeichen und nicht den Index benötigen, wäre es schneller, eine for..of Schleife for (let ch of t) { alert(ch) }

10voto

Martin Wantke Punkte 3753

Es ist besser, die for...of-Anweisung zu verwenden, wenn die Zeichenkette Unicode-Zeichen enthält, da die Bytegröße unterschiedlich ist.

for(var c of "tree ") { console.log(c); }
//"A".length === 3

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X