Arrays 访问perl数组元素的元素
我有一个perl代码,它读取Arrays 访问perl数组元素的元素,arrays,perl,Arrays,Perl,我有一个perl代码,它读取csv文件。它包含需要在前端更新的网格数据 首先,这里是perl代码,它读取数据并对其进行格式化,以便将数据推送到前端进行显示 my @array; for my $column ($csv->column_headers) { my $json = encode_json([ map { $_->{$column} } @$data ]); push(@array, "$json;"); } 最后的数据是@array,它被传递到前端ja
csv
文件。它包含需要在前端更新的网格
数据
首先,这里是perl代码,它读取数据并对其进行格式化,以便将数据推送到前端进行显示
my @array;
for my $column ($csv->column_headers) {
my $json = encode_json([ map { $_->{$column} } @$data ]);
push(@array, "$json;");
}
最后的数据是@array
,它被传递到前端javascript
code。@array
的内容如下
["1","2"]; ["dd","ddd"]; ["wow","cool"]; ["HOLD","HOLD"];
此数据实际上是4
列,列标题名称为Id
,Name
,Comment
和type
。所有这些数据都捆绑在@array
中,并传递给Javascript
var header=[];
header[0] = @array[0];
}
如果我执行console.log(头[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;
}
现在,它在网格的每个单元格中显示以下值
[object Object]
基于的答案,我认为您只需要在结尾处交换循环即可:
my $json = encode_json($data);
print "var data = $json;\n";
如果我没记错你以前的文章,你的数据不是已经是表格(CSV)格式了吗?无论你在这里得到了什么,都是一种表示表格数据的奇怪方式,我建议你重新思考一下你的数据结构。你到底想在这里做什么?@MattJacob-是的,我认为这个结构很奇怪(我已经用我最终想要实现的东西更新了我的问题。我想你想要的是一个对象数组。我会先用Perl构建它,然后将整个东西编码为JSON。实际上,getline\u hr\u all
(from)获取99%的结果。在返回值上调用encode_json
,Bob是你的叔叔。@MattJacob-我尝试这一点是因为我知道我越来越接近了。我在总体值上尝试了encode_json函数。例如,我的$json=encode_json([map{$\>{$column}}@$data]));在这句话之后,我再次编写了encode_json,但它不起作用。也许我没有正确编码。请您将答案发布在这里。去掉循环、map
和数组引用,只需自己编码$data
。
my $json = encode_json($data);
print "var data = $json;\n";