在Perl中,我可以使用以下语法多次重复一个字符:
$a = "a" x 10; // results in "aaaaaaaaaa"
有没有一种简单的方法在Javascript中实现这一点?我显然可以使用一个函数,但我想知道是否有内置的方法,或者其他一些巧妙的技术。
在Perl中,我可以使用以下语法多次重复一个字符:
$a = "a" x 10; // results in "aaaaaaaaaa"
有没有一种简单的方法在Javascript中实现这一点?我显然可以使用一个函数,但我想知道是否有内置的方法,或者其他一些巧妙的技术。
当前回答
Lodash提供了与Javascript repeat()函数类似的功能,这在所有浏览器中都不可用。它名为_.repeat,从3.0.0版开始提供:
_.repeat('a', 10);
其他回答
截至目前,96.39%的浏览器支持String.repeat()。
function pad(text, maxLength){
return text + "0".repeat(maxLength - text.length);
}
console.log(pad('text', 7)); //text000
另一种选择是:
for(var word = ''; word.length < 10; word += 'a'){}
如果需要重复多个字符,请乘以条件:
for(var word = ''; word.length < 10 * 3; word += 'foo'){}
注意:您不必像word=Array(11)那样超出1。join('a')
在一个新的ES6和声中,你将有自己的方法来重复。此外,ES6目前只是实验性的,该功能已在Edge、FF、Chrome和Safari中提供
"abc".repeat(3) // "abcabcabc"
当然,如果重复功能不可用,您可以使用旧的好数组(n+1).join(“abc”)
String.prototype.repeat = function (n) { n = Math.abs(n) || 1; return Array(n + 1).join(this || ''); };
// console.log("0".repeat(3) , "0".repeat(-3))
// return: "000" "000"
如果您不反对在项目中包含库,lodash有一个repeat函数。
_.repeat('*', 3);
// → '***
https://lodash.com/docs#repeat