![](/img/trans.png)
[英]How to pass a function that's a property of another object into a function and call it in javascript?
[英]How to pass JavaScript object to another function?
我正在从AWS S3存储桶下载csv文件,以便可以在D3中使用它。
下载csv文件没有问题。 在console.log(data.Body.toString())
下面的代码中,以预期格式打印出csv文件内容
但是,我不确定如何在下面的代码中将下载的csv文件内容传递给D3。
文件内容已经是不错的csv文件格式。
问:如何更换merged.csv
与下面mergedcsv
对象?
<script type="text/javascript">
var bucket = new AWS.S3();
bucket.getObject({
Bucket: 's3-google-analytics',
Key: 'merged.csv'
},
function awsDataFile(error, data) {
if (error) {
return console.log(error);
}
mergedcsv = data.Body.toString();
console.log(data.Body.toString());
}
);
// how to replace the "merged.csv" below with the mergedcsv object above?
d3.csv("merged.csv", function(data) {
var parseDate = d3.time.format("%Y%m%d").parse;
var counter = 0;
data.forEach(function(d) {
etc
});
});
</script>
更新以添加示例mergedcsv
内容,例如console.log(mergedcsv);
输出console.log(mergedcsv);
或console.log(data.Body.toString());
:
yyyymm,date,hostname,source,PPCC,in30days,sessionDuration,users,sessions,newUsers,twitterSessions,bounceRate,sessionsPerUser
201203,20120330,journal,google,PPCC,>30days,26.25,4,4,4,0,75.0,1.0
201203,20120331,journal,(direct),PPCC,>30days,0.0,3,3,3,0,100.0,1.0
201203,20120331,journal,bing,PPCC,>30days,0.0,1,1,1,0,100.0,1.0
阅读d3.csv上的文档后,它会从URL加载CSV文件,但是在您的示例中,您已经加载了数据,只需解析即可。 因此d3.csv不会有任何用处。
似乎用于解析的D3函数是d3.csv.parse(data)
,它将返回已解析数据的数组。 (文档在这里 )
所以你可以做类似的事情...
var bucket = new AWS.S3();
var mergedcsv;
bucket.getObject({
Bucket: 's3-google-analytics',
Key: 'merged.csv'
},
function awsDataFile(error, data) {
if (error) {
return console.log(error);
}
mergedcsv = d3.csv.parse(data.Body.toString());
// now mergedcsv will be an array, so you can do whatever you were going to do with it before, i.e...
var parseDate = d3.time.format("%Y%m%d").parse;
var counter = 0;
data.forEach(function(d) {
etc
});
}
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.