经过一些试验和错误后,我现在能够显示我想要的2d数组,除了我不希望在第一个数组项之前进行换行。
我希望我的输出看起来像这样:
123
456
789
但它看起来像这样:
(blank line)
123
456
789
我的JavaScript代码:
x = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
i = 0;
while (i < x.length) {
j = 0;
while (j < x.length) {
if (j % 3 === 0) {
document.write('<br/>' + x[i][j]);
} else {
document.write(x[i][j]);
}
j++;
}
i++;
}
&#13;
答案 0 :(得分:0)
x = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
i = 0;
while (i < x.length) {
j = 0;
while (j < x.length) {
if (j % 3 === 0) {
if (i != 0) {
document.write('<br/>');
}
document.write(x[i][j]);
} else {
document.write(x[i][j]);
}
j++;
}
i++;
}
答案 1 :(得分:0)
您可以通过检查移动外部循环中的换行符,并仅获取内部循环内的值。
插入条件
if (i) {
检查变量i
是否为truthy ness,并在这种情况下将值不等于零作为true
值,并跳过第一行的换行符。
var x = [[1, 2, 3], [4, 5, 6], [7, 8, 9]],
i = 0,
j;
while (i < x.length) {
j = 0;
if (i) {
document.write('<br/>');
}
while (j < x[i].length) { // take the inner array for length
document.write(x[i][j]);
j++;
}
i++;
}
使用Array#map
和Array#join
的简短方法。
var x = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
document.write(x.map(a => a.join('')).join('<br>'));
答案 2 :(得分:0)
我想你想重新考虑你的逻辑。
您始终要打印当前值。所以我删除了那个逻辑。 您希望在当前数组结束时打印新行。
如果你正确地构建它,你不需要任何if语句。
见下面的代码:
x = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
i = 0;
while (i < x.length) {
j = 0;
while (j < x[i].length) {
document.write(x[i][j]);
j++;
}
document.write('<br/>');
i++;
}
&#13;
答案 3 :(得分:0)
跳过内部循环并使用join()
将子数组元素合并为字符串
<br>
不为零时添加i
var x = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
var i = -1;
while (++i < x.length) {
document.write( (i>0 ? '<br/>' : '') + x[i].join(''));
}