2011-09-27 61 views

回答

2
String.prototype.repeat = function(n){ 
    var n = n || 0, s = '', i; 
    for (i = 0; i < n; i++){ 
    s += this; 
    } 
    return s; 
} 

"h".repeat(5) // output: "hhhhh" 

也许这样的事?

1

尝试,

function repeat(h, n) { 
    var result = h; 
    for (var i = 1; i < n; i++) 
     result += h; 
    return result; 
} 
3

如果我明白你的问题如下可能的解决方案。

var n = 10; 
var retStr = ""; 
for(var i=0; i<n; ++i) { 
retStr += "h"; 
} 

return retStr; 
10

这里是没有循环做一个可爱的方式:

var n = 20; 
var result = Array(n+1).join('h'); 

它创造了一定长度的空数组,然后加入所有的数组的空元素把之间所需汉字空的元素 - 因此最终会有一串长相同的字符。

你可以看到它在这里工作:http://jsfiddle.net/jfriend00/PCweL/

+0

它可能更快,因为它避免了中间字符串。 – Thilo

+2

那会是'Array(n + 1)'?你需要'n-1'分隔符来加入'n'的东西,让你有一个短暂的...(将20更改为3以更清楚地看到问题。) – cHao

+0

@cHao - 你是对的 - 我纠正了它。 – jfriend00