d3.nest() Examples

http://stackoverflow.com/questions/25642422/array-manipulation-with-d3-nest-and-rollup

HTML

<a href="http://bl.ocks.org/phoebebright/3176159">tutorial</a><br/>

<pre id="tdata"></pre><br/>
<pre id="rdata"></pre><br/>
<pre id="tdata2"></pre>

CSS

pre {
    font: bold 10px Arial;
}

JavaScript

var data =
[
    { "plts": "Zlnd", "bin": "150k", "amount": 4786 },
    { "plts": "Zlnd", "bin": "200k", "amount": 1319 },
    { "plts": "Zlnd", "bin": "250k", "amount": 249 },
    { "plts": "Hsls", "bin": "150k", "amount": 1101 },
    { "plts": "Hsls", "bin": "200k", "amount": 412 },
    { "plts": "Hsls", "bin": "250k", "amount": 674 }
];

var tdata =
    d3.nest()
        .key(function (d) { return d.plts; })
        .entries(data);

d3.select("#tdata").text(JSON.stringify(tdata, null, '\t'));

var rdata =
    d3.nest()
        .key(function (d) { return d.plts; })
        .rollup(function(values) {
            return d3.sum(values, function(v) { return v.amount; })})
        .entries(data);

d3.select("#rdata").text(JSON.stringify(rdata, null, '\t'));

var tdata2 =
    d3.nest()
        .key(function (d) { return d.bin; })
        .entries(data);
        

console.log("hello")
d3.select("#tdata2").text(JSON.stringify(tdata2, null, '\t'));