JSFiddle - React, Tailwind, and code Playground

by Henry

JavaScript

var data = [{glazed: 3.50, jelly: 4.50, powdered: 1.00, sprinkles: 3.50, age: 21, responses: 2,name:"test"},
    {glazed: 2.83, jelly: 3.50, powdered: 1.83, sprinkles: 4.50, age: 22, responses: 6,name:"test"},
    {glazed: 3.25, jelly: 4.75, powdered: 2.25, sprinkles: 3.50, age: 23, responses: 4,name:"test"},
    {glazed: 1.50, jelly: 4.00, powdered: 2.50, sprinkles: 4.00, age: 25, responses: 2,name:"test"}];


var keys_to_ignore = ["age", "responses", "name"]
//var extent = [10,0]
data.forEach( function (row)
{
    //Use d3.entries to create key\values
    var data_entries = d3.entries(row)
    // Add the 'current maximum' and 'current_min' based off the previous rows
    if (typeof extent !== "undefined") {
        data_entries.push({"key":"current_max", "value":extent[1]})
        data_entries.push({"key":"current_min", "value":extent[0]})
    }
    // now calculate the extent (max / min)
    extent = d3.extent(data_entries, function (d) {
        // Ignore specified keys
        if (keys_to_ignore.indexOf(d.key) == -1) {
            return d.value;
        }
    });
});

console.log(extent)