如何在JavaScript中重复字符串?

Bro*_*ing 20 javascript

在JavaScript中,如何创建重复字符串的字符串x次:

var s = new String(" ",3);

//s would now be "   "
Run Code Online (Sandbox Code Playgroud)

Jac*_*kin 54

没有这样的功能,但是嘿,你可以创建它:

String.prototype.repeat = function(times) {
   return (new Array(times + 1)).join(this);
};
Run Code Online (Sandbox Code Playgroud)

用法:

var s = " ".repeat(3);
Run Code Online (Sandbox Code Playgroud)

当然,您可以将其作为独立功能组的一部分来编写:

var StringUtilities = {
    repeat: function(str, times) { 
       return (new Array(times + 1)).join(str);
    }
    //other related string functions...
};
Run Code Online (Sandbox Code Playgroud)

用法:

var s = StringUtilities.repeat(" ", 3);
Run Code Online (Sandbox Code Playgroud)

  • 啊,走开原型扩展...... (10认同)
  • @Malvolio我更新了我的答案以适应你的观点...... (2认同)

Ivo*_*zel 5

您还可以使用Array.join:

function repeat(str, times) {
    return new Array(times + 1).join(str);
}

> repeat(' ', 3)
"   "
Run Code Online (Sandbox Code Playgroud)


pee*_*lot 5

这是一个不涉及循环的简洁方法.除了简洁之外,我非常确定使用join对于非常大的字符串来说效率要高得多.

function repeat(str, num) { 
    return (new Array(num+1)).join(str); 
}
Run Code Online (Sandbox Code Playgroud)

你也可以将这些代码放在String原型上,但我的心态是混淆内置类型的原型是一个坏主意.