我无法弄清楚为什么当我在replit中运行此代码时,它会在answer和undefined之间返回一个额外的空格。 '\ 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
答案 0 :(得分:1)
您最后会得到换行符\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']));
答案 1 :(得分:0)
您可以修改for
循环,只向最后一行添加换行符,而不是在每行后添加+ '\n'
:
for (var i = 0; i < longestString.length; i++) {
result += ((x[i] || ' ') + ' ' + (y[i] || ' '));
if(i < longestString.length - 1) {result += '\n';}
}