Hallo Sven,
Die Geschwindigkeitsunterschiede merkst du auch erst dann, wenn du eine andere Variante damit vergleichst und zweitens natürlich erst dann, wenn die Schleife häufig durchlaufen wird.
Nun ich kann Dir versichern, das ich das getestet habe. Die Funktion läuft nicht merklich schneller ab, wenn man das gesamte Ersetzen entfernt. Es geht hier nicht um Megabytes und Optimierung der Performance ist zur Zeit nicht mein Problem.
Ich sehe eine Schleife und darin Konstantendefinitionen. Das ist schlechter Programmierstil und sollte nicht angewandt werden. Und solange du keine Funktion zum Messen der Rechenzeit einbaust, wirst du bei ein oder zwei Durchläufen auch keinen Unterschied "merken". Der Hinweis war ganz generell zu verstehen: Konstantendefinitionen gehören nicht in Schleifen.
"Würde"? Noch nicht getestet?
Erst testen, dann rückmelden. :)
Nun auch hier kann ich Dir bestätigen, das Deine Lösung sich genau so verhält, wie Antje es in ihrem Posting erwähnt hat. Es wird nur das erste Zeichen ersetzt alle weiteren nicht. Die in dem Posting weiter unten erwähnte Lösung ohne eval habe ich auch getestet. Das Ergebnis ist identisch (auch hinsichtlich der Performance), daher bin ich darauf nicht weiter eingegangen.
Wo ist das Problem?
string.replace(/</g,"$lt;") ersetzt global alle "<" in "<".
Gruß und Danke
Günter
- Sven Rautenberg