解释这个的最好方法是举例。
假设我有整数5.我将它插入一个函数,并在单个变量中返回空格字符(“”)5次,如“”。
我有整数3.我把它插入一个函数,输出将是“”(3个空格)。
希望你明白这一点。实现这一目标的最佳方法是什么?我觉得有一种非常简单的方法可以在JavaScript中使用或不使用循环,这是我缺少的。感谢。
答案 0 :(得分:4)
function nSpaces(n) {
var s = '';
while (n > 0 && n--) { s += ' '; }
return s;
}
然后......
var str = nSpaces(5);
有关反向while循环和循环的更多信息,请阅读: http://james.padolsey.com/javascript/looping-in-javascript/
答案 1 :(得分:3)
function repeatCh( ch, num ) {
return new Array( num + 1 ).join( ch );
}
答案 2 :(得分:2)
function spaces(size) {
for(var output = ""; size > 0; size--) output += " ";
return output;
}
较短的版本:)
function spaces(n) {
for(var s="";n--;s+=" "){}return s;
}
答案 3 :(得分:1)
有更快的方法可以做到这一点,但它与您在任何其他程序语言中所做的相同。请注意,如果您直接将其注入页面,它仍然只显示一个空格。
function gimmeSpaces(count){
var returnValue = '';
for (int i = 0;i<count;i++){ returnvalue += " ";}
return returnValue;
}
答案 4 :(得分:1)
或者始终存在阵列版本:
function spaces(n) {
var a = [ ];
for(var i = 0; i < n; ++i)
a.push(' ');
return a.join('');
}
基本想法是建立一个n
空格列表(a.push(' ')
),然后在最后(a.join('')
)将它们全部粘在一起。
AFAIK,字符串连接(例如s += ' '
)在某些IE版本中速度较慢,并且阵列方法更快。 OTOH,在这种情况下真的不应该有太大的不同,所以你应该采取任何更明确的方法。
答案 5 :(得分:1)
这是一种不涉及循环的方法:
function getSpaces(n) {
return new Array(n + 1).join(" ");
}
替代的,乐观的版本(如果速度很重要,并且您需要的最大空间数是已知的):
function getSpaces(n) {
return " ".substr(-n);
}