将数值转换为JavaScript中填充了字符的字符串

时间:2011-02-10 03:30:29

标签: javascript function loops integer return

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

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

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

希望你明白这一点。实现这一目标的最佳方法是什么?我觉得有一种非常简单的方法可以在JavaScript中使用或不使用循环,这是我缺少的。感谢。

6 个答案:

答案 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);
}