Javascript 使用for循环访问嵌套数组的单元格

Javascript 使用for循环访问嵌套数组的单元格,javascript,Javascript,编写一个codecademy教程,其中我应该像这样打印出表(数组中的数组)的“单元格” Cell Cell Cell 每个单元格之间有两个空格。我假设结果(第一行)如下所示 Person Age City “行”的末尾不应有空格 我在下面写了一个灾难性的for循环,试图按照codecademy(复制到下面)的说明进行操作,但无法让它工作。谁能帮我一把 var table = [ ["Person", "Age", "City"], ["Sue", 22,

编写一个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); 

}
var表=[
[“人”、“年龄”、“城市”],
[“苏”,22,“旧金山”],
[“乔”,45,“哈利法克斯”]
];
对于(表中的var r){///I,我为语句编写了这篇文章
var c;
var单元格=表[r];
var rowText=“”;
对于(c=0;c
来自Codecademy.com的说明

我们希望添加另一个for循环和一些格式化代码,以便 可以按以下格式打印三行中的每一行:

细胞

每个单元格值之间应该有两个空格,但不是在 一行的末尾。每行应位于单独的行上

练习提示中有详细说明

删除for循环主体中的console.log语句。在 在for循环的主体中,定义一个变量c。还要定义一个变量 命名单元格并将其设置为当前行的长度(其中 可在表[r]中找到。定义一个名为 行文本。确保将rowText设置为“”。定义另一个 在步骤2中的变量之后立即循环

在第一个循环参数中,将c设置为0。在第二个循环中 参数,确保循环在c小于1后停止 细胞。在第三个循环参数中,增量c。在 从步骤3循环,附加当前单元格(可通过 表[r][c])至第行文本。使用if语句也可以附加两个空格 如果c不是 行中的最后一个单元格(当c小于单元格-1时为真) 在步骤3中的整个循环体之后,但在循环体内部 在上一个练习中,使用console.log打印行文本


使用单元格。我认为长度不是单元格

确保循环在c比cells小1后停止

这些说明有点误导人。确实希望
c
变量从0变为小于数组长度的1

此行:
for(c=0;c

应该是:
for(c=0;c

因此,如果单元格数组有三个元素,则应执行循环的三次迭代。当
c
等于
0
时,另一个
c
1
,第三个
c
为2。然后循环构造将继续,其中
c++
语句将
c
设置为3,但随后是co条件(
c
)将是
false
,因为它将是
3<3

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);
​
定义一个名为cells的变量,并将其设置为当前行的长度

您将
单元格设置为行本身,而不是其长度

var cells = table[r].length;
table.map(函数(x){return x.join(“”)}).join('\n')
:-P
var cells = table[r].length;