JavaScript 没有创建由唯一的白色-space 子字符串组成的字符串?

JavaScript not creating a string made up of sole white-space sub-strings?

所以我正在创建一个函数,该函数应该根据作为函数参数传递的数字创建一个由 x 个白色-space 组成的字符串。问题是,当我 运行 代码时,我收到错误“无效字符串长度”,所以基本上不将 white-spaces 算作字符。

请看下面我的代码:

    function ajustarTexto(str, num) {
      let len = str.length;
      newstr = str;
      whtspc = (" ");
      if (len < num){
        for (let i = 0; i >= 0 ; i++){
          newstr = whtspc += whtspc;
        };
      }else if (len > num) {
          newstr.splice(num);
      };
      
      return newstr;
    };
    
    
    
    
    console.log(ajustarTexto("", 3)) // " " 
    console.log(ajustarTexto("hola", 2)) // "ho" 
    console.log(ajustarTexto("Hola", 0)) // "" 
    console.log(ajustarTexto("Hola", 5)) // "Hola "

我曾尝试以不同的方式定义 whtspc 变量,但我总是收到“无效的字符串长度”错误。

我有没有搞错? 有没有一种特定的方法可以创建我不知道的 white-space 变量?

有了这个

newstr = whtspc += whtspc;

您每次迭代都将 whtspc 字符串的长度加倍。该表达式等效于:

whtspc += whtspc;
newstr = whtspc;

因此,在循环内部,whtspc 从长度 1 开始,到 2,然后是 4,然后是 8,等等。最终,没有更多的空间并引发错误。

将输入字符串切成所需的长度以删除可能多余的尾随字符,然后 padEnd 用空格将其填充到所需的长度,如果输入字符串的长度恰好小于 num:

function ajustarTexto(str, num) {
  return str.slice(0, num).padEnd(num, ' ');
}
console.log(ajustarTexto("", 3)) // " " 
console.log(ajustarTexto("hola", 2)) // "ho" 
console.log(ajustarTexto("Hola", 0)) // "" 
console.log(ajustarTexto("Hola", 5)) // "Hola "