基于D3.js中的索引对数组进行排序

时间:2017-04-21 08:51:35

标签: javascript arrays sorting d3.js

如何在d3中对此数组进行排序 我想在索引的基础上对数组进行排序,这里每个索引都与另一个索引不同



var states = { "Alabama":32 , "Alaska":765 , "Arizona": 87, "Arkansas": 1, "California": 43, "Colorado": 23, "Connecticut": 54, "Delaware": 45, "District of Columbia": 987, "Florida": 76, "Georgia": 65, "Hawaii": 43, "Idaho": 4, "Illinois": 12, "Indiana": 78, "Iowa": 2, "Kansas": 23, "Kentucky": 23, "Louisiana": 12, "Maine": 76, "Maryland": 23, "Massachusetts": 543, "Michigan": 123, "Minnesota": 23, "Mississippi": 80, "Missouri": 654, "Montana": 23, "Nebraska":40, "Nevada": 32,}




1 个答案:

答案 0 :(得分:0)

正如Nina Scholz所提到的,你的初始结构不是和数组,而是一个具有一堆不可排序的属性的对象。要获得您描述的输出,可以将此对象转换为具有两个属性的自定义对象数组:键(状态名称)和值(数字):

var arr = [];
for (a in states) {
    arr.push({key: a, value: states[a]});
}

然后按其项目字段之一对此数组进行排序:

arr.sort(function(a, b) {
    return b.value - a.value;
});

现在你可以将这个数组与d3一起使用。

相关问题