Skip to content

Instantly share code, notes, and snippets.

@mbostock
Last active April 19, 2016 18:07
Show Gist options
  • Save mbostock/1440766 to your computer and use it in GitHub Desktop.
Save mbostock/1440766 to your computer and use it in GitHub Desktop.
selection.order
d3_selectionPrototype.order = function() {
for (var j = 0, m = this.length; j < m; j++) {
for (var group = this[j], i = 1, n = group.length, prev = group[0]; i < n; i++) {
var node = group[i];
if (node) {
if (prev) prev.parentNode.insertBefore(node, prev.nextSibling);
prev = node;
}
}
}
return this;
};
d3_selectionPrototype.sort = function(comparator) {
comparator = d3_selection_sortComparator.apply(this, arguments);
for (var j = 0, m = this.length; j < m; j++) this[j].sort(comparator);
return this.reorder();
};
function d3_selection_sortComparator(comparator) {
if (!arguments.length) comparator = d3.ascending;
return function(a, b) {
return comparator(a && a.__data__, b && b.__data__);
};
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment