我的函数(下面的代码)转置了数组中提供的两个字符串,在垂直方向上记录单词。我的问题是,单词'programmer‘中的2m和'Hello’中的2l是压缩的,你可以在他们的左边看到数字2。
如何才能让控制台分别显示“m”和“l”。为什么只有当其中一个字符串比另一个短时才会发生这种情况?
我在https://jsfiddle.net/上运行了它,但我不认为这会影响输出。

function transposeTwoStrings(arr)
{
// split into characters
var arr1 = arr[0].split('');
var arr2 = arr[1].split('');
//figure out longer array
// since we will be pushing values, we will be changing the length, so
// shouldn't use length property
var length1 = arr1.length;
var length2 = arr2.length;
var diff;
var longer;
if (length1 > length2)
{
longer = length1;
diff = length1 - length2;
for (var i = 0; i < diff; i++)
{
arr2.push(' ');
}
}
else if (length1 < length2)
{
longer = length2
diff = length2 - length1;
for (var k = 0; k < diff; k++)
{
arr1.push(' ');
}
}
else
{
longer = length1;
}
//log values
for (var j = 0; j < longer; j++)
{
console.log(arr1[j] + ' ' + arr2[j]);
}
}
var arr1 = ['Hello', 'World'];
var arr2 = ['Hello', 'Jo'];
var arr3 = ['Jo', 'Hello'];
var arr4 = ['We are', 'programmers.']
transposeTwoStrings(arr1);
console.log('--------');
transposeTwoStrings(arr2);
console.log('--------');
transposeTwoStrings(arr3);
console.log('--------');
transposeTwoStrings(arr4);
console.log('--------');发布于 2017-03-02 03:47:26
有关大量设置,请参阅https://developers.google.com/web/tools/chrome-devtools/console/。在这里你可以看到一种解决方案:
如果您希望每个日志都有一个唯一的行条目,请从DevTools设置中启用Show timestamp。由于每条消息的时间戳不同,因此每条消息都显示在各自的行上。
现在,您在每一行上都有了时间戳,但没有“压缩”行。
发布于 2017-03-02 03:42:19
发生这种情况是因为字符串是相等的。每隔一个字符串添加一个空格字符:
for (var j = 0; j < longer; j++) {
console.log(arr1[j] + ' ' + arr2[j] + (j%2 ? ' ' : ''));
}理想情况下,检查最后一次输出是否等于当前输出,并为每隔一次拷贝添加空间。
https://stackoverflow.com/questions/42540468
复制相似问题