Trinkgeld? Kurzer Weg, um bis zu 12 wiederholte Zeichen in JavaScript zu generieren


8
'---------'
'-'.repeat(9) // longer!

'------------'
(x='----')+x+x
'-'.repeat(12) // same length

Gibt es eine cleverere Möglichkeit, Zeichenfolgen mit bis zu 12 wiederholten Zeichen in JavaScript zu generieren?


1
Denken Sie nicht so, aber abhängig von der Herausforderung können Sie möglicherweise mehrere Läufe spielen, um Bytes zu sparen, indem Sie z. B. RLE
ASCII - nur

9
Für den speziellen Fall von Kommas können Sie dies tun Array(12)+'', der kürzer als das Literal ab 11 Kommas ist und dann kürzer als bleibt repeat.
Martin Ender

1
@SteveBennett Manchmal interessiert Sie nur die Zeichenfolgenlänge und nicht das tatsächliche Zeichen, und bei vielen PPCG-Herausforderungen können Sie ein ASCII-Zeichen Ihrer Wahl für die Ausgabe verwenden.
Martin Ender

1
Wenn Sie die Wiederholung wiederverwenden, können Sie sie als Alias ​​verwenden.
Shaggy

5
Wenn Sie nicht wirklich 12 identische Zeichen benötigen, sondern eine Zeichenfolge mit 12 Zeichen, können Sie dies auch tun 1e11+''.
Arnauld

Antworten:


2

Leider kann ich nach einer scheinbar ewigen Suche in der Dokumentation keine Lösung finden, die mit der 12-Zeichen-Einschränkung funktioniert und für ein bestimmtes Zeichen generiert wird. Es gibt jedoch einige nette Tricks, mit denen Sie einige Bytes für bestimmte Fälle speichern können:

  • 1eL-1+''gibt eine mit 9s gefüllte Zeichenfolge von L Länge.
  • ''.padEnd(L)gibt eine mit Leerzeichen gefüllte Zeichenfolge von L Länge. Es ist nur nützlich, wenn L > 10 ist, sonst ist es zu lang. Dieser kann sofort mit einer Funktion verkettet werden.
  • N/9+''gibt eine Zeichenfolge, beginnend mit, 0.gefolgt von einem Bündel von Ns. Dies funktioniert nicht, wenn N <1 oder N > 8 ist, und das Ergebnis enthält offensichtlich nicht die gleichen Zeichen auf dem gesamten Weg, sondern ziemlich nah und ziemlich kurz.
  • Array(L)+''gibt eine mit Kommas gefüllte Zeichenfolge der Länge L - 1.

1
Entlang der 1/3+''Spitze Ihres Tippes können Sie eine Ziffer D (außer 0 und 9) einige Male ähnlich mit wiederholen D/9+''.
Kamoroso94

Array(L)+''gibt L-1Länge, richtig?
Dom Hastings

Was bedeutet, dass für L = 13 der Code 12 Zeichen und die Ausgabe 12 Zeichen ist, also dasselbe wie','.repeat(12)
Steve Bennett
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.