在codecademy教程上工作,我打算打印出表格的“单元格”(数组中的数组),就像这样
Cell Cell Cell
每个单元格之间有两个空格。我假设结果(对于第一个“行”)看起来像
Person Age City
“行”末尾不应有空格。
我在下面写了一个灾难性的for循环,试图按照codecademy(下面复制)中的说明操作,但无法使其工作。任何人都可以帮我一把......
var table = [
["Person", "Age", "City"],
["Sue", 22, "San Francisco"],
["Joe", 45, "Halifax"]
];
for (var r in table) { ////// I wrote this for statement
var c;
var cells = table[r];
var rowText = "";
for(c = 0; c < cells; c++){
rowText += table[r][c];
if(c < cells - 1){ //only adds the space if not at end of line
rowText += " ";
}
}
console.log(rowText);
}
Codecademy.com的说明
我们想要添加另一个for循环和一些格式化代码,以便我们 可以按以下格式打印出三行中的每一行:
细胞细胞
每个单元格值之间应该有两个空格,但不是 一行的结尾。每行应该在一个单独的行上。
深入的说明在练习提示中。
删除for循环体中的console.log语句。在里面 for循环的主体,定义一个变量c。还定义一个变量 命名单元格并将其设置为等于当前行的长度(其中 可以用table [r]找到。定义一个名为的空字符串变量 rowText。确保将rowText设置为“”。定义另一个 在步骤2的变量之后立即循环。
在第一个循环参数中,将c设置为0.在第二个循环中 参数,确保在c小于1之后循环停止 细胞。在第三个循环参数中,增加c。在身体里 从第3步循环,追加当前单元格(可以找到 table [r] [c])到rowText。使用if语句也可以附加两个空格 字符(这是“”)到rowText,如果c不是的位置 行中的最后一个单元格(当c小于单元格时为1) 整个循环体从步骤3开始,但在循环体内部 从上一个练习中,使用console.log打印rowText。
答案 0 :(得分:0)
使用cells.length而不是我想的单元
答案 1 :(得分:0)
确保在c小于单元格之后循环停止。
说明有点误导。你真的希望你的c
变量从0变为小于数组的长度。
这一行:for(c = 0; c < cells; c++){
应该是:for(c = 0; c < cells.length; c++){
因此,如果您的单元格数组有三个元素,则应执行循环的三次迭代。一旦c
等于0
,另一个c
为1
,第三个c
为2.循环结构将继续, c++
语句设置c
为3,但条件(c < cells.length
)将为false
,因为它将为3 < 3
。
答案 2 :(得分:0)
var table = [
["Person", "Age", "City"],
["Sue", 22, "San Francisco"],
["Joe", 45, "Halifax"]
];
var text = "";
for( var i=0; i<table.length; i++ ){
for( var j=0; j<table[i].length; j++ ){
text += table[i][j];
if( j < table[i].length-1 ){
text += " ";
}
}
text += "\n";
}
console.log(text);
收率:
Person Age City
Sue 22 San Francisco
Joe 45 Halifax
答案 3 :(得分:0)
定义一个名为cells的变量,并将其设置为等于当前行的长度
您将cells
设置为行本身,而不是其长度。
var cells = table[r].length;