0
我想排序,然后切片一组JavaScript对象。我已成功切分数据,但排序返回的是既不按类别也不按字母顺序排序的类别列表。Javascript对象排序和切片
我的CSV看起来是这样的:
category,date_calc,value,YYYY,MM
string1,2011-08-01,46440.16,2011,8
string2,2013-03-01,68249.72,2013,3
string1,2014-01-01,4285,2014,1
string3,2012-03-01,47646.82,2012,3
...
这是我的代码:
d3.csv("data/ncc_category.csv", function(error, csv) {
var data = d3.nest()
.key(function(d) { return d.category;})
.rollup(function(d) { return d3.sum(d, function(g) {return g.value; }); }).entries(csv)
var sorted = data.sort(function (a, b) {
return a.value - b.value;
}).reverse();
var top10 = sorted.slice(0, 10); // slice
console.log(top10);
});
编辑: 在data
第4个对象屏幕抓取。
的第4个对象屏幕抓取在top10
确保'data'包含你认为它包含(以'console.dir (数据);'例如)。你也可以通过切换'a'和'b'去除'.reverse()'。 – sebnukem
'数据'是好的,并正确地滚动,其只是排序不工作,就好像它没有在'b.value - a.value;'注册'值' - 感谢'reverse'的帮助。 – woodbine
您可能想要将'value'解析为一个数字(例如,在其前面放置一个“+”)。 –