使用D3.JS查找数组数组的最小值和最大值不是普通的Javascript

时间:2014-05-28 22:51:34

标签: javascript arrays d3.js

我有一个如下所示的数组:

series = [ [ { "x":2013-01-01, "y":100 }, { "x":2013-01-02, "y":300 } ...],
           [ { "x":2013-01-01, "y":1000 }, { "x":2013-01-02, "y":300 } ...],...
         ]

如何使用d3获取“x”和“y”的最小值和最大值?

我知道对于像下面这样的单个数组:

miniseries = [ { "x":2013-01-01, "y":100 }, { "x":2013-01-02, "y":300 } ...]

我会使用例如以下句子:

minX = d3.min(miniseries, function(d){return d.x});

但不确定如何处理数组而不是单个数组。

2 个答案:

答案 0 :(得分:2)

var minX = d3.min(series, function (ms) {
    return d3.min(ms, function (d) {
        return d.y
    })
});

答案 1 :(得分:0)

只需迭代数据数组并将值存储在两个数组中(每个轴一个)。然后,您可以按如下方式获取两个轴的最小值/最大值:

查找最小/最大日期(x轴):

// sample data
var dates = [ 
    new Date("2013-01-01"),
    new Date("2013-02-01"),
    new Date("2013-03-01")
];

var minDate = new Date(Math.min.apply(null, dates));
var maxDate = new Date(Math.max.apply(null, dates));

要查找最小/最大值(y轴):

// sample data
var valuesAxisY = [100, 300, 400, 50];

var min = Math.min.apply(null, valuesAxisY),
var max = Math.max.apply(null, valuesAxisY);