【发布时间】:2015-01-14 18:20:08
【问题描述】:
我知道您不应该对 javascript 对象进行排序,但我需要对 d3 图表进行排序。我有一个对象,其键为 FICO 分数范围和该范围内的计数值
var counts = {680-700: 30, 620-640: 41, 640-660: 24, 660-680: 10}
我需要返回一个排序后的对象,使最低值的键排在第一位。
var desired_obj = { 620-640: 41, 640-660: 24, 660-680: 10, 680-700: 30 }
我尝试使用 _.sortBy 但它只返回值
_.sortBy(counts, function(val, key) { return val })
【问题讨论】:
-
发布您的图表制作代码:您在哪里需要排序字典? JavaScript 对象没有顺序,因此对其进行排序是没有意义的。
-
counts不能是数组有什么原因吗?例如[{range: '680-700', count: 30}, {range: '620-640', count: 41}, {range: '640-660', count: 24}, {range: '660-680', count: 10}] -
@shawnb 不,那很好
-
@shawnb 知道了。感谢您为我指明正确的方向。我用
var map = _.map(counts, function(val, key) { return {label: key, value: val } )然后排序_.sortBy(map, function(x) { return x.label.split("-")[0] })
标签: javascript d3.js underscore.js