D3.js从数组数组中选择最小/最大值(嵌套d3.extent)

use*_*806 7 javascript arrays d3.js

我有一些代码,它采用列中元素的值并将它们放入一个数组中:

var someArray = new Array(rows.selectAll("td").filter(function(d,i)
    {
        if(i==2) //index of the cells in the rows where I retrieve the data  
        {
            return (d3.select(this))
        }
    }));
Run Code Online (Sandbox Code Playgroud)

^创建一个数组[1]的数组,它具有元素中单元格的值,例如"2.6"或"5.4"

当我尝试使用时:

console.log(d3.min(someArray)); 
Run Code Online (Sandbox Code Playgroud)

我得到[Array [1],Array [1],Array [1],...]而我需要返回的是那些数组中最低的,然后是最大的值(这将在d3.scale.linear中使用( ).domain([最小值,最大值])

Lar*_*off 5

你只需要嵌套调用:

var min = d3.min(arrayOfArrays, function(d) { return d3.min(d); });
Run Code Online (Sandbox Code Playgroud)

要同时获得最大值和最小值,请使用d3.extent():

// extent[0] == min, extent[1] == max
var extent = d3.extent(arrayOfArrays, function(d) { return d3.extent(d); });
Run Code Online (Sandbox Code Playgroud)

不幸的是,你不能在嵌套的情况下获得范围 - 你必须分别做min和max.