Skip to content

Instantly share code, notes, and snippets.

@mbostock
Last active April 19, 2016 18:07

Revisions

  1. mbostock revised this gist Feb 9, 2016. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions .block
    Original file line number Diff line number Diff line change
    @@ -0,0 +1 @@
    license: gpl-3.0
  2. mbostock revised this gist Feb 9, 2016. 1 changed file with 5 additions and 23 deletions.
    28 changes: 5 additions & 23 deletions index.html
    Original file line number Diff line number Diff line change
    @@ -1,24 +1,8 @@
    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
    </head>
    <body>
    <script type="text/javascript" src="http://mbostock.github.com/d3/d3.js?2.6.0"></script>
    <script type="text/javascript">

    d3.selection.prototype.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;
    };
    <meta charset="utf-8">
    <body>
    <script src="//d3js.org/d3.v3.min.js"></script>
    <script>

    var div = d3.select("body").selectAll("div")
    .data(["a", "b", "f"])
    @@ -33,6 +17,4 @@

    div.order();

    </script>
    </body>
    </html>
    </script>
  3. mbostock revised this gist Oct 12, 2012. 1 changed file with 0 additions and 0 deletions.
    Binary file added thumbnail.png
    Loading
    Sorry, something went wrong. Reload?
    Sorry, we cannot display this file.
    Sorry, this file is invalid so it cannot be displayed.
  4. mbostock revised this gist Dec 7, 2011. 2 changed files with 38 additions and 25 deletions.
    38 changes: 38 additions & 0 deletions index.html
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,38 @@
    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
    </head>
    <body>
    <script type="text/javascript" src="http://mbostock.github.com/d3/d3.js?2.6.0"></script>
    <script type="text/javascript">

    d3.selection.prototype.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;
    };

    var div = d3.select("body").selectAll("div")
    .data(["a", "b", "f"])
    .enter().append("div")
    .text(String);

    var div = d3.select("body").selectAll("div")
    .data(["a", "b", "c", "d", "e", "f"], String);

    div.enter().append("div")
    .text(String);

    div.order();

    </script>
    </body>
    </html>
    25 changes: 0 additions & 25 deletions selection-sort.js
    Original file line number Diff line number Diff line change
    @@ -1,25 +0,0 @@
    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__);
    };
    }
  5. mbostock created this gist Dec 7, 2011.
    25 changes: 25 additions & 0 deletions selection-sort.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,25 @@
    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__);
    };
    }