在 Perl 中,我可以使用以下语法多次重复一个字符:
$a = "a" x 10; // results in "aaaaaaaaaa"
有没有一种简单的方法可以在 Javascript 中完成此操作?我显然可以使用一个函数,但是我想知道是否有任何内置方法或其他一些巧妙的技术。
如今, repeat
字符串方法几乎在任何地方都可以实现。 (它不在 Internet Explorer 中。)因此,除非需要支持较旧的浏览器,否则只需编写以下内容:
"a".repeat(10)
在repeat
之前,我们使用了这个技巧:
Array(11).join("a") // create string with 10 a's: "aaaaaaaaaa"
(请注意,长度为 11 的数组只会使您获得 10 个 “a”,因为Array.join
将参数放在数组元素之间。)
Simon 还指出,根据此 jsperf ,似乎在 Safari 和 Chrome(但不是 Firefox)中,通过简单地使用 for 循环附加(虽然不太简洁)多次重复字符是更快的。
如果您重复很多次,很方便:
String.prototype.repeat = String.prototype.repeat || function(n){
n= n || 1;
return Array(n+1).join(this);
}
alert( 'Are we there yet?\nNo.\n'.repeat(10) )