【发布时间】:2019-08-21 22:03:21
【问题描述】:
按日期递归读取 3 组文件以加载到一组对象数组中以发送到图形函数
这在之前我没有任何承诺并且我只是推入 Loaded_Data 的一个位置时有效:
即:
Loaded_Data = [];
d3.tsv("location.txt").then( { data => data.forEach( d => {Loaded_data.push(d);}) } );
工作正常。
当我尝试更改“Loaded_Data=[];”时到:
Loaded_Data = [[],[],[]]; //empty the array from previous load
Promise.all([d3.tsv("location.txt"), d3.tsv("location2.txt"), d3.tsv("location3.txt")])
.then( data => {
data[0].forEach( d => { Loaded_Data[0].push(d);})
data[1].forEach( d => { Loaded_Data[1].push(d);})
data[2].forEach( d => { Loaded_Data[2].push(d);})
});
当我希望使用 console.log(Loaded_Data) 时:
[[{object1a},{o2a},{o3a},{...}],[{object1b},{o2b},o3b},{...}],[{object1c},{o2c},{o3c}]]
但我收到错误:“Loaded_Data[0].push(d) 不是函数”
这不是访问我的对象数组的正确方法吗?
【问题讨论】:
-
这是您的实际代码吗?您已经使用三个内部数组初始化了
Loaded_Data数组,因此您应该不会在此处发布的当前代码中遇到该错误。 -
显示实际的代码块......
-
尝试在某处添加
console.log(typeof Loaded_data[0]);进行调试 -
@djfdev 这是我隐藏路径的实际代码
-
@epascarello 这是我隐藏路径的实际代码
标签: javascript arrays d3.js promise