javascript - 为什么这个函数的输出中有一个额外的空格?

标签 javascript for-loop

我一直无法弄清楚为什么当我在 replit 中运行此代码时,它会在答案和未定义之间返回一个额外的空格。 '\n' 必须存在才能按原样格式化,但任何人都可以解释如何摆脱空格吗?感谢任何帮助。

代码:

function transposeTwoStrings(array) {
  var x = array[0];
  var y = array[1];
  var longestString = 0;
  var result = '';

  if(x.length > y.length) {
    longestString = x;
  }
  else if(y.length > x.length) {
    longestString = y;
  }
  else if(x.length === y.length) {
    longestString = x;
  }
  
  for(var i = 0; i < longestString.length; i++) {
    result += ((x[i] || ' ') + ' ' +(y[i] || ' ')) + '\n';
  }             
  return result;
} 
   
console.log(transposeTwoStrings(['Hello','World']));

      Replit Output:

      H W
      e o
      l r
      l l
      o d
                         <--(This is the space)
      => undefined

最佳答案

最后会出现一个换行符 \n ,某些浏览器会忽略该换行符。您可以使用 trim()

删除它
function transposeTwoStrings(array) {
    var x = array[0];
    var y = array[1];
    var longestString = 0;
    var result = '';

    if (x.length > y.length) {
        longestString = x;
    }

    else if (y.length > x.length) {
        longestString = y;
    }

    else if (x.length === y.length) {
        longestString = x;
    }

    for (var i = 0; i < longestString.length; i++) {
        result += ((x[i] || ' ') + ' ' + (y[i] || ' ')) + '\n';
    }
    return result.trim();
}
console.log(transposeTwoStrings(['Hello', 'World']));

关于javascript - 为什么这个函数的输出中有一个额外的空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42823793/

相关文章:

javascript - 可以用生成器函数代替 promise 管理吗?

Javascript 或 HTML/CSS float div 问题,可能是其他问题

javascript - 在Javascript中计算二次曲线上任意点的切线斜率

javascript - 从两个数组创建对象

postgresql - pg 函数内的 for 循环

JavaScript 不工作 - CSS 元素不正确?

batch-file - 如何在第二部分的for循环中制作管道?

r - 在 for 循环中运行 sapply 的更快方法

java - 如何扫描循环内的行并将其插入到ArrayList中?

swift - 使 Completionhandler 在 For 循环中工作以获取图像