【发布时间】:2010-12-28 22:03:23
【问题描述】:
在 JavaScript 中,我如何创建一个重复字符串 x 次的字符串:
var s = new String(" ",3);
//s would now be " "
【问题讨论】:
标签: javascript
在 JavaScript 中,我如何创建一个重复字符串 x 次的字符串:
var s = new String(" ",3);
//s would now be " "
【问题讨论】:
标签: javascript
没有这个功能,但是,你可以创建它:
String.prototype.repeat = function(times) {
return (new Array(times + 1)).join(this);
};
用法:
var s = " ".repeat(3);
当然,您可以将其编写为独立函数组的一部分:
var StringUtilities = {
repeat: function(str, times) {
return (new Array(times + 1)).join(str);
}
//other related string functions...
};
用法:
var s = StringUtilities.repeat(" ", 3);
【讨论】:
你也可以使用Array.join:
function repeat(str, times) {
return new Array(times + 1).join(str);
}
> repeat(' ', 3)
" "
【讨论】:
这是一种不涉及循环的简洁方法。除了简洁之外,我很确定使用 join 对于非常大的字符串更有效。
function repeat(str, num) {
return (new Array(num+1)).join(str);
}
您也可以将此代码放在 String 原型上,但我的心态是,弄乱内置类型的原型是个坏主意。
【讨论】:
我认为实现这一点的最好也是唯一的方法是循环遍历你的字符串。据我所知,任何语言都没有这样的功能。
function multiString(text, count){
var ret = "";
for(var i = 0; i < count; i++){
ret += text;
}
return ret;
}
var myString = multiString(" ", 3);
但我想你可以弄清楚。
【讨论】:
你没有尝试过循环
for (var i = 0; i < 3; i++) {
s += " "; }
?
【讨论】: