解释这一点的最好方法是举例。
假设我有整数 5。我将它插入一个函数,它会在单个变量中返回 5 次空格字符 (" "),例如 " "。
我有整数 3。我将它插入一个函数,输出将是“”(3 个空格)。
希望你明白这一点。实现这一目标的最佳方法是什么。我觉得在 JavaScript 中有一种非常简单的方法可以做到这一点,无论有没有循环,我都错过了。谢谢。
解释这一点的最好方法是举例。
假设我有整数 5。我将它插入一个函数,它会在单个变量中返回 5 次空格字符 (" "),例如 " "。
我有整数 3。我将它插入一个函数,输出将是“”(3 个空格)。
希望你明白这一点。实现这一目标的最佳方法是什么。我觉得在 JavaScript 中有一种非常简单的方法可以做到这一点,无论有没有循环,我都错过了。谢谢。
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/
function repeatCh( ch, num ) {
return new Array( num + 1 ).join( ch );
}
function spaces(size) {
for(var output = ""; size > 0; size--) output += " ";
return output;
}
一个较短的版本:)
function spaces(n) {
for(var s="";n--;s+=" "){}return s;
}
有更快的方法可以做到这一点,但这与您在任何其他程序语言中所做的相同。请注意,如果您将其直接注入到页面中,它仍将仅显示为一个空格。
function gimmeSpaces(count){
var returnValue = '';
for (int i = 0;i<count;i++){ returnvalue += " ";}
return returnValue;
}
或者总是有数组版本:
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,在这种情况下,这真的不应该有太大的区别,所以你应该采用任何更清晰的方法。
这是一种不涉及循环的方法:
function getSpaces(n) {
return new Array(n + 1).join(" ");
}
替代的,乐观的版本(如果速度很重要,并且您需要的最大空间数是已知的):
function getSpaces(n) {
return " ".substr(-n);
}