免责声明:我不知道我在做什么。说真的,我喜欢数据,并认为自己做这将是学习编程和使用数据库以及使网络应用程序像一个很酷的家伙的好方法。我一直在寻找最后一天的答案,而我能找到的所有例子都无法使用我的代码。
这是我使用的完整代码和数据的粘贴箱。它是在d3.js github上找到的示例折线图,其中填写了我的数据。 http://pastebin.com/7aW6wegd
json来自couchdb数据库
我可以画出画线,但它们很乱:
我认为这是由于日期没有正确排序造成的,因为在控制台中它们是按顺序列出的。我无法弄清楚如何正确排序日期。使用d3.time.format会抛出错误(你可以在我从代码行图中获取的代码中实际看到它,它们使用它来解析日期。使用它和我的数据会引发错误,即使在我尝试之后将时间戳转换为日期)我似乎无法弄清楚如何在couchdb中对日期进行排序。
答案 0 :(得分:12)
为什么不在填充forEach
属性的date
之后对数据进行排序?这是一个对象数组的分类器的一个非常基本的实现:
var data = [
{date: new Date(2000)},
{date: new Date(1000)}
];
function sortByDateAscending(a, b) {
// Dates will be cast to numbers automagically:
return a.date - b.date;
}
data = data.sort(sortByDateAscending);
Array.prototype.sort
有一个很好的documentation。