ヒント?JavaScriptで最大12個の繰り返し文字を生成する簡単な方法


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

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

JavaScriptで最大12の繰り返し文字の文字列を生成する賢い方法はありますか?


1
そう思わないでください。ただし、チャレンジによっては、たとえばRLEを使用してバイトを節約するために複数の実行をゴルフできる可能性があります
ASCIIのみ

9
カンマの特殊なケースではArray(12)+''、11個のコンマで始まるリテラルよりも短く、その後も短くなりrepeatます。
マーティンエンダー2017年

1
@SteveBennettでは、実際の文字ではなく、文字列の長さのみを気にする場合があります。PPCGの多くの課題では、選択したASCII文字を出力に使用できます。
マーティンエンダー

1
リピートを再利用する場合は、エイリアスを付けることができます。
シャギー

5
12の同じ文字が本当に必要ではなく、12文字の文字列が必要な場合は、も実行できます1e11+''
Arnauld 2017年

回答:


2

残念ながら、永遠にドキュメントを検索した後、12文字の制約で機能し、指定された任意の文字を生成する解決策を見つけることができません。ただし、特定のケースでいくつかのバイトを節約するためにできるいくつかの巧妙なトリックがあります:

  • 1eL-1+''Lの長さ9の、sで満たされた文字列を与えます。
  • ''.padEnd(L)Lの長さの、スペースで満たされた文字列を与えます。L > 10の場合にのみ役立ちます。それ以外の場合は長すぎます。これは関数とすぐに連鎖できます。
  • N/9+''文字列を指定し、0.その後に一連のNsを続けます。N <1またはN > 8の場合、これは機能せず、結果には明らかに同じ文字がすべて含まれていませんが、かなり近くてかなり短いです。
  • Array(L)+''L -1 の長さの、コンマで満たされた文字列を与えます。

1
1/3+''チップの線に沿って、と同様に、数字のD(0と9を除く)を何度も繰り返すことができますD/9+''
kamoroso94 2017年

Array(L)+''L-1長さを与えますよね?
Dom Hastings

つまり、L = 13の場合、コードは12文字で、出力は12文字なので、','.repeat(12)
Steve Bennett
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.