我正在使用D3.js,并尝试按下按钮时按升序/降序对我的酒吧进行排序。 但我有问题的sortBars函数从我的对象返回正确的值。使用D3.JS访问JS对象中的'值'使用D3.JS
var sortOrder = false;
var sortBars = function() {
sortOrder = !sortOrder;
svg.selectAll("rect")
.sort(function(a, b) {
if (sortOrder) {
return d3.ascending(a, b);
} else {
return d3.descending(a, b);
}
})
.transition()
.delay(function(d, i) {
return i * 50;
})
.duration(1000)
.attr("x", function(d, i) {
return xScale(i);
});
};
当它返回xScale等(我),我知道这是不恰当地引用我的数据集。我试过把它作为i.value(这就是我的名字在我的数据集中命名)。我知道这是不正确的,但是当我改变它的时候,我至少会让酒吧移动。 我将如何访问正确的数据?
我为此开发了一个JSFiddle。随意与它一起玩。目前,排序按钮不会有任何效果(因为该功能尚未正确访问数据)。
这似乎太简单了!哈哈。我想我比我的if/else尝试更好。我假设我的问题是xScale返回索引,我甚至不认为它会与sort()本身有关...现在我更加关注它。 也看到你更新了我的文字 - 还没有完成。谢谢! – EnigmaRM