如何使用javascript将csv文件读入对象数组?

问题描述 投票:1回答:1

我正在尝试在JavaScript中读取将数据存储在对象数组中的数据文件(.csv):

var myarr = [];
d3.csv("file.csv").then(
    function(data) {
        myarr = data;
        console.log(myarr[0]);   
    }
);
console.log(myarr[0]);

我正在使用d3版本5。该函数内部的数据准备就绪,但外部尚不可用。我知道这是因为d3使用Promise,但是我已经尝试弄清楚一段时间了,如何在d3.csv命令之外的数组中使数据可用。我正在使用jsPsych进行实验,并且需要csv文件中的信息作为jsPsych命令的输入。有人有什么建议吗?预先谢谢你。

javascript csv d3.js
1个回答
0
投票

您的代码会将数据分配给全局变量,问题是,当您在范围之外登录时,该变量尚未分配。

D3基于此概念构建,您不必在其他地方维护数据及其生命周期。

如果您真的想访问数据,可以执行以下操作:

创建一个计时器,每秒检查一次数据是否已初始化。请记住,您仍然需要处理异常并且可以无限期地运行除非您清除超时。

var myarr = [];
d3.csv("file.csv").then(
  function(data) {
    myarr = data;
    console.log(myarr[0]);   
  }
);

var timer = setTimeout(function(){ 
 if(myarr.length > 0){
      console.log(myarr[0]); 
      clearTimeout(timer );
   }
}, 1000);
© www.soinside.com 2019 - 2024. All rights reserved.