var sales = d3.csv("Sales Export Friendly 3-19-17.csv", function(error, data) {
//var parseDate = d3.time.format("%m/%d/%Y %H:%M:%S %p").parse;
return {
unit: data["Unit Booked"],
date: new Date(data["Booking Date"]).getMonth() + 1,
checkin: new Date(data["Checkin"]).getMonth() + 1,
LOS: new Date(data["Checkout"]).valueOf() - new Date(data["Checkin"]).valueOf()/(24*60*60*1000),
total: +data["Total Stay"],
avgNight: (+data["Total Stay"]) / ((new Date(data["Checkout"]).valueOf() - new Date(data["Checkin"]).valueOf())/(24*60*60*1000))
}
});
console.log(sales);
console.log(d3.keys(sales[0]));
parcoords = d3.parcoords()("#TopLeft");
parcoords
销售退货的控制台日志记录声明
Object { header: Cn/u.header(), mimeType: Cn/u.mimeType(), responseType: Cn/u.responseType(), response: Cn/u.response(), get: Cn/</u[n](), post: Cn/</u[n](), send: Cn/u.send(), abort: Cn/u.abort(), on: M/<(), row: e/o.row() }
我不确定这个奇怪的物体是怎么发生的。
以下console.log语句返回一个空数组。
最后,我得到一个TypeError:data.slice在调用parcoords时不是一个函数
答案 0 :(得分:2)
在你的ante-penultimate question之前,你做得对:
d3.csv(url, function(data){
//code here
});
然后,我不知道为什么,在你的previous question(只是现在我注意到了),在这个问题中,你开始这样做了:
var data = d3.csv(url, function(data){
//the rest of the code
哪个不行。
问题在于:d3.csv
不会返回任何内容!从技术上讲,它返回一个与请求相关的对象(运行片段以查看它)...
var test = d3.csv("https://gist.githubusercontent.com/mbostock/3887051/raw/805adad40306cedf1a513c252ddd95e7c981885a/data.csv", function(data){
});
console.log(test);
<script src="https://d3js.org/d3.v4.min.js"></script>
......这不是你想要的。
因此,改回你正在做的事情......
d3.csv("Sales Export Friendly 3-19-17.csv", function(error, data) {
//code here
})
...并放弃var sales
。
另外,请注意d3.csv
异步。因此,您必须在回调中console.log
变量:
d3.csv("Sales Export Friendly 3-19-17.csv", function(error, data) {
console.log(data)//this works
});
console.log(data)//this will not work