2011-09-27 16 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