我正在尝试使用 d3.csv() 方法导入 .csv 文件。这是我的代码:
d3.csv("data.csv", function(data) {
console.log(data);
})
我认为我会得到一个包含对象的数组,每个对象代表 .csv 文件的一行(其中有 50 个)。我是什么actually然而,获取是一系列独立的对象。也就是说,该函数已将 50 个对象记录到我的控制台,not一个包含 50 个对象的数组。我是否误解了这个方法?如果是这样,我怎样才能得到这样的数组?
In d3 v5用于获取数据的 API 已经发生了很大的变化,随着底层工作方式已经从使用XMLHttpRequest
到获取 API。在 D3 v4 之前的版本中,您的代码的行为将与您期望的打印单个结果数组一样。新的 API 用于d3.csv()但是,看起来像这样:
# d3.csv(input[, init][, row]) <>
进一步向下,文档提供了解释供您观察:
如果只有其中之一init and row被指定,它被解释为row如果它是一个函数,则转换为函数,否则为 init 对象。
在你的代码中的第二个参数d3.csv()
是一个函数,因此被解释为行转换函数。由于行转换函数是针对输入文件中的每一行执行的,因此您会看到单独打印每个对象,而不是一次打印整个数组。
Since d3.csv()
返回一个 Promise 正确的用法是这样的:
d3.csv("data.csv")
.then(function(data) {
console.log(data);
});
Here data
指整个对象数组。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)