在字符串的两端添加等量的空格

时间:2017-04-04 15:21:01

标签: javascript function

    function space(str, numspace)
   {
       output="";
       for(i=0;i<str.length;++i)
       {
           output = numspace+ str;
       }
       for(i=0;i<str.length;++i)
       {
           output = output + numspace;
       }
       return output;
   }

我试图让这个函数在字符串的两端添加等量的空格。我不允许使用内置函数,这就解释了为什么我要做的很长。

我得到的代码输出:

空间( “你好”, “ - ”)

“ - 你好-----------”

“ - ”表示空格,因此字符串左侧的空格数量是正确的,但字符串右侧的空格量是多少。任何人都有任何想法,为什么会发生这种情况?

4 个答案:

答案 0 :(得分:1)

为什么不这样做呢:

&#13;
&#13;
const space = (str, numspace) => {
    const spc = Array(numspace).fill(' ').join('')
    return spc+str+spc
}
&#13;
&#13;
&#13;

它的作用:

  • 创建一个spc变量,其中包含numspace次要的空格
  • spc
  • 的两边加入str

编辑 - 更长的路

&#13;
&#13;
const space = (str, numspace) => {
    let spc = ''
    for (;numspace--;spc+=' '){}
    return spc+str+spc
}

console.log(space('ap',3))
&#13;
&#13;
&#13;

答案 1 :(得分:0)

如果numspace是一个整数,那么您可以将该值用作for循环的上边界,如下所示:

&#13;
&#13;
function space(str, numspace)
{
    var emptySpace = "";
    for (i = 0; i < numspace; i++){
        emptySpace += " ";
    }
    var output = emptySpace + str + emptySpace;
    return output;
}

console.log("'" + space('example1', 5) + "'");
console.log("'" + space('example2', 3) + "'");
console.log("'" + space('example3', 1) + "'");
&#13;
&#13;
&#13;

通过这种方式,您可以创建一个变量emptySpace,该变量是一个字符串numspace,其长度为空白,并在返回之前将其附加到str字符串的正面和背面输出。

编辑:根据OP评论中的信息我改变了功能。

答案 2 :(得分:0)

用任何你想要的东西包围它。

  function space(str, numspace)
   {
       output=str;
       for(i=0;i<str.length;++i)
       {
           output = numspace + output + numspace;
       }
       return output;
   }

答案 3 :(得分:0)

此功能可用于在文本中附加任意数量的字符

    var output = addSpace('hello','*',4);
    alert(output); // output ****hello****

    function addSpace(text,character,no){
        var appendChar = character;
        for(var i=1;i<no;i++) {
        appendChar = appendChar+character;
      }
      return appendChar+text+appendChar;
    }