应用了转换时的D3js排序问题
D3js sorting issue on transition applied
我有一个数据集已经通过d.id
绑定到svg:g
var categorized = g1.selectAll("g.node")
.data(dataset, function(d){return d.id})
.classed('filtered', false);
categorized.enter()
.append("g")
.attr("class", "node")
...
我使用一个函数从这样的数据值中排序:
var sorted = dataset
.filter(function(d) { return d.notation[3].value >=50 } )
.sort(function(a, b) { return d3.descending(a.notation[3].value,
b.notation[3].value) });
当我console.log
It 时,它返回正确的顺序
var filtered = g1.selectAll("g.node")
.data(sorted, function(d) {return d.id})
.classed('filtered', true);
仍然按照正确的顺序,如果I CCD_,但如果我应用延迟,它会反转的结果顺序
scored.transition()
.delay(500).duration(1000)
.attr("id", function(d) {
console.log(d.id);
});
但如果我去掉延迟,它会保持良好的排序。
我的问题是:我做的事情不好吗?
我想您已经注意到d3.js通常使用"优化"for循环来反向迭代(请参阅循环真的反向更快吗?以及其他引用)。
简单地反转您的选择是否有效?我不确定你在转换什么,所以你需要按照特定的顺序应用这两个步骤。
相关文章:
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- 使用promise和mongoose对文档进行排序
- Selectize.js:如何对整数值的选项进行排序
- Javascript排序的图像弹出窗口..可以't单独弹出
- 如何通过引用var Using DataTables来进行分页或排序
- 为什么HTML5拖放的目标是孩子?(可排序列表)
- AngularJs对所有页面中的所有记录进行排序
- 当属性不一致时,如何根据属性对JS对象列表进行排序
- 按从高到低对多个int变量进行排序
- jQuery UI可排序-多连接列表拖动
- Javascript排序字符串或数字
- 2个backbone.js集合,具有相同的模型,但排序顺序不同
- d3js文本传输-示例代码不起作用
- sort而不是排序javascript
- 通过从节点父级获取所有子级对节点进行排序(获取子级数组)
- 如何合并不同集合的游标并按日期排序
- 为什么我的JavaScript堆栈排序函数不起作用
- ui网格:在自定义表头模板中触发排序
- jquery Onclick函数带有导致双击的回调排序函数
- 应用了转换时的D3js排序问题