访问perl Array元素的元素

时间:2015-08-31 23:40:18

标签: arrays perl

我有一个读取csv文件的perl代码。它包含需要在前端更新的grid数据。

首先,这是perl代码,它读取数据并对其进行格式化,以便将数据推送到前端进行显示。

my @array;
for my $column ($csv->column_headers) {
    my $json = encode_json([ map { $_->{$column} } @$data ]);
    push(@array, "$json;");
}

最终数据是传递给前端@array代码的javascript@array的内容如下。

["1","2"]; ["dd","ddd"]; ["wow","cool"]; ["HOLD","HOLD"];

此数据实际上是4列,其列标题名称为IdNameCommenttype。所有这些数据都在@array中捆绑在一起并传递给Javascript

var header=[];
header[0] = @array[0];
}   

如果我执行console.log(header[0]),此代码会显示以下输出;这意味着它正在显示数组的第一个元素。但我想显示第一个元素的元素。

["1", "2"]

而它应显示在输出下方。

["1"]

简而言之,我想知道如何访问数组元素元素。我尝试使用下面的代码,但它没有用。有人可以建议吗?

var header=[];
    header[0] = @array[0][0];

我最终试图通过使用下面的代码将这些数据放入网格中。

for (var i=0;i<row_cnt;i++){
    var row={};
    row["Id"]=Id[i];
    row["Name"]=Name[i];
    row["Comment"]=Comment[i];
    row["type"]= type[i];
    data[i]=row;                           
}

其中Id[i]将在第一个循环中与"1"相对应,在第二个循环中与"2"相对应。同样,它将为其他列生成数据。然后将这些分配给行并在网格中更新。

根据matts建议,我编辑了这样的代码

my $json = encode_json($data);
 for my $column ($csv->column_names) {
 push(@data_array, "var $column= $json;");
}

现在它显示grid的每个单元格下面的值。

[object Object]

1 个答案:

答案 0 :(得分:0)

your previous question的答案的基础上,我认为你只需要在最后换掉循环:

my $json = encode_json($data);
print "var data = $json;\n";