【问题标题】:How to .push into an array of arrays [duplicate]如何.push到数组数组中[重复]
【发布时间】: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


【解决方案1】:

看起来我从一个实例到递归忘记包含一个迭代器是愚蠢的,我基本上得到了一个......等待它......堆栈溢出! .

我正在向我的橡皮鸭解释我的代码并找到它。多么浪费2个小时。 掌心

【讨论】:

    猜你喜欢
    • 2016-12-02
    • 1970-01-01
    • 1970-01-01
    • 2019-02-22
    • 2019-06-19
    • 2017-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多