如何在d3js中排序后将条形图重新排序为其初始状态

时间:2017-05-21 12:50:45

标签: javascript d3.js

我已经制作了plunker您可以将数据从最大值到最低值排序,这很棒,但是当您取消选中此框时,它会按字母顺序排序

function(a, b) { return d3.ascending(a.name, b.name); }

我不知道如何替换它,以便在您选中此框之前返回到它的初始状态,任何帮助都将不胜感激!

1 个答案:

答案 0 :(得分:1)

首先,使用name的正确顺序创建一个数组:

var sortIndex = data.map(function(d){ return d.name});

然后用它进行排序:

function(a, b) { 
    return sortIndex.indexOf(a.name) - sortIndex.indexOf(b.name); 
}

这是您更新的plunker:https://plnkr.co/edit/SmpDOk7KYSvrM2ioUoxE?p=preview