Text dem Anfang der Zeichenfolge voranstellen

Lesezeit: 2 Minuten

Benutzer-Avatar
Kumpel64

Was ist die schnellste Methode, um einen neuen Wert am Anfang einer Zeichenfolge hinzuzufügen?

Da geht es um die Frage, was ist das am schnellsten Methode, dachte ich, ich würde einige Leistungsmetriken hinzufügen.

TL;DR Der Gewinner ist mit großem Abstand der + Betreiber und bitte Verwenden Sie niemals Regex

https://jsperf.com/prepend-text-to-string/1

Geben Sie hier die Bildbeschreibung ein

  • Da wollen wir testen voranstellenund nicht nur verketten, ich habe die Tests aktualisiert: jsperf.com/prepend-text-to-string/5

    – metalim

    22. April 2019 um 11:32 Uhr

  • @metalim, gab es wesentliche Änderungen, die Sie an den Tests vorgenommen haben? Ein Präpend ist nur die geordnete Hälfte der Zeichenfolgenverkettung. Außerdem müssen Sie für jsPerf die Testfälle nicht in eine Schleife werfen; jsPerf ruft jede Methode tausende Male auf, um eine Grundlinie von Bewertungen zu erhalten. Leistungstests optimieren bestimmte Szenarien, und ich bin mir nicht sicher, wie häufig dieselbe Zeichenfolge 1.000 Mal vorangestellt wird.

    – KyleMit

    22. April 2019 um 18:08 Uhr

  • Es kann einen erheblichen Unterschied geben, ob Sie eine kurze Zeichenfolge an eine lange oder eine lange Zeichenfolge an eine kurze anhängen. Da es uns interessiert vorangestellt kurze Zeichenfolge zu beliebiger Zeichenfolge, das wird in Tests gemacht: kurze Zeichenfolge einer zunehmenden längeren Zeichenfolge voranstellen. Schleifen sind da, um 1000 verschiedene Längen der Suffix-Zeichenfolge zu testen, um zu vermeiden, dass nur kurz oder nur lang getestet wird. @KyleMit, wenn Sie eine bessere Idee haben, können Sie sie gerne in der nächsten Testiteration implementieren.

    – metalim

    23. April 2019 um 8:38 Uhr


  • Ich bin versucht, dies für den xkcd-Streifen zu verbessern. Tolles Zeug! Ihre elegante Lösung ist höchstwahrscheinlich langsamer, weil sie den Prozessor für reguläre Ausdrücke instanziiert.

    – Rolf

    10. November 2017 um 0:40 Uhr


  • @ Rolf höchstwahrscheinlich nicht. es ist sicherlich langsamer als die prestring + 'original string'; Lösung.

    – Gabriele Petrioli

    10. November 2017 um 7:17 Uhr


  • @GabrielePetrioli Der Vorteil ist, dass Sie einfach zu Ihrer Punktkette (Pipeline) hinzufügen können. Sie können sogar etwas anhängen, wie zum Beispiel mystr.replace (/$/,’ by Gabriele’). Es könnte langsamer sein, aber es ist genau das, wonach ich gesucht habe.

    – Mateja Petrovic

    9. August 2018 um 0:23 Uhr

  • Vielleicht sollte dies der neue Standard sein: Jeder Beitrag muss auch relevante XKCD enthalten.

    – HaulinHafer

    12. September 2018 um 20:33 Uhr

  • Aus irgendeinem Grund dachte ich, dass der Computer auf dem Schreibtisch eigentlich ein Baby in einer Wiege war, und fand es auch seltsam, dass der Typ das Baby schlug.

    – thedanotto

    29. März 2019 um 20:08 Uhr

Benutzer-Avatar
Ilan Schemaul

Wenn Sie die Version von Javascript namens ES 2015 (alias ES6) oder höher verwenden möchten, können Sie verwenden Vorlagenzeichenfolgen eingeführt von ES 2015 und empfohlen von einigen Leitlinien (wie z Styleguide von Airbnb):

const after = "test";
const mystr = `This is: ${after}`;

Benutzer-Avatar
Griffi

ES6:

let after="something after";
let text = `before text ${after}`;

Benutzer-Avatar
hjpotter92

das könntest du auch so machen

"".concat("x","y")

  • und warum nicht “x”.concat(“y”)? Nur um eine weitere String-Instanziierung hinzuzufügen und sie langsamer zu machen?

    – metalim

    22. April 2019 um 11:31 Uhr

1009970cookie-checkText dem Anfang der Zeichenfolge voranstellen

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy