# Tip? Short way to generate up to 12 repeated characters in JavaScript

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

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


Is there any cleverer way of generating strings of up to 12 repeated characters in JavaScript?

• Don't think so but depending on the challenge you may be able to golf multiple runs to save bytes using e.g. RLE – ASCII-only May 28 '17 at 11:46
• For the special case of commas you can do Array(12)+'', which is shorter than the literal starting at 11 commas and then remains shorter than repeat. – Martin Ender May 28 '17 at 11:51
• @SteveBennett sometimes you only care about the string length and not the actual character, and many PPCG challenges allow you to use some ASCII character of your choice for output. – Martin Ender May 28 '17 at 12:15
• If you're going to be reusing repeat, you can alias it. – Shaggy May 28 '17 at 12:15
• If you don't really need 12 identical characters but rather a 12-character string, you can also do 1e11+''. – Arnauld May 28 '17 at 12:47

## 1 Answer

Unfortunately, after what seems an eternity of searching documentation, I can't seem find any solution that will work with the 12-character constraint and generate for any given character given. However, there are a few neat tricks one can do to save some bytes for specific cases:

• 1eL-1+'' will give a string, filled with 9s, of L length.
• ''.padEnd(L) will give a string, filled with spaces, of L length. It's only useful when L > 10, otherwise it's too long. This one can be immediately chained with a function.
• N/9+'' will give a string, starting with 0. then followed by a bunch of Ns. This does not work when N < 1 or N > 8, and the result obviously does not contain the same characters the whole way, but pretty close and pretty short.
• Array(L)+'' will give a string, filled with commas, of length L - 1.
• Along the lines of your 1/3+'' tip, you can repeat a digit D (except 0 and 9) a bunch of times similarly with D/9+''. – kamoroso94 Oct 11 '17 at 0:36
• Array(L)+'' gives L-1 length, right? – Dom Hastings Oct 11 '17 at 5:49
• Which means that for L=13, the code is 12 characters and the output is 12 characters, so the same as ','.repeat(12) – Steve Bennett Oct 11 '17 at 6:11