1

解释这一点的最好方法是举例。

假设我有整数 5。我将它插入一个函数,它会在单个变量中返回 5 次空格字符 (" "),例如 " "。

我有整数 3。我将它插入一个函数,输出将是“”(3 个空格)。

希望你明白这一点。实现这一目标的最佳方法是什么。我觉得在 JavaScript 中有一种非常简单的方法可以做到这一点,无论有没有循环,我都错过了。谢谢。

4

6 回答 6

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/

于 2011-02-10T03:34:41.507 回答
3
function repeatCh( ch, num ) {    
  return new Array( num + 1 ).join( ch );
}
于 2011-02-10T03:40:27.277 回答
2
function spaces(size) {
    for(var output = ""; size > 0; size--) output += " ";
    return output;
}

一个较短的版本:)

function spaces(n) {
    for(var s="";n--;s+=" "){}return s;
}
于 2011-02-10T03:35:28.473 回答
1

有更快的方法可以做到这一点,但这与您在任何其他程序语言中所做的相同。请注意,如果您将其直接注入到页面中,它仍将仅显示为一个空格。

function gimmeSpaces(count){
   var returnValue = '';
     for (int i = 0;i<count;i++){ returnvalue += " ";}
   return returnValue;
}
于 2011-02-10T03:36:13.150 回答
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,在这种情况下,这真的不应该有太大的区别,所以你应该采用任何更清晰的方法。

于 2011-02-10T03:37:06.937 回答
1

这是一种不涉及循环的方法:

function getSpaces(n) {
    return new Array(n + 1).join(" ");
}

替代的,乐观的版本(如果速度很重要,并且您需要的最大空间数是已知的):

function getSpaces(n) {
    return "                 ".substr(-n);
}
于 2011-02-10T03:42:04.573 回答