在Perl中,我可以使用以下语法多次重复一个字符:
$a = "a" x 10; // results in "aaaaaaaaaa"
有没有一种简单的方法在Javascript中实现这一点?我显然可以使用一个函数,但我想知道是否有内置的方法,或者其他一些巧妙的技术。
在Perl中,我可以使用以下语法多次重复一个字符:
$a = "a" x 10; // results in "aaaaaaaaaa"
有没有一种简单的方法在Javascript中实现这一点?我显然可以使用一个函数,但我想知道是否有内置的方法,或者其他一些巧妙的技术。
当前回答
我将详细介绍@bonbon的答案。他的方法是一种“将N个字符附加到现有字符串”的简单方法,以防任何人需要这样做。例如,因为“a google”是1后跟100个零。
对于(var google='1';google.length<1+100;google+='0'){}document.getElementById('el').innerText=google;<div>这是“谷歌”:</div><div id=“el”></div>
注意:您必须将原始字符串的长度添加到条件中。
其他回答
截至目前,96.39%的浏览器支持String.repeat()。
function pad(text, maxLength){
return text + "0".repeat(maxLength - text.length);
}
console.log(pad('text', 7)); //text000
对于重复项目中的值,我使用repeat
例如:
var n = 6;
for (i = 0; i < n; i++) {
console.log("#".repeat(i+1))
}
但要小心,因为该方法已添加到ECMAScript 6规范中。
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"
在ES2015/ES6中,您可以使用“*”。重复(n)
所以,只要将此添加到您的项目中,您就可以开始了。
String.prototype.repeat = String.prototype.repeat ||
function(n) {
if (n < 0) throw new RangeError("invalid count value");
if (n == 0) return "";
return new Array(n + 1).join(this.toString())
};
如果你经常重复自己的话,那么很方便:
String.prototype.repeat=String.prototype.repeat||函数(n){n=n||1;return Array(n+1).join(this);}alert('我们到了吗?\n没有。\n'。重复(10))