![](/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.