使用D3.min查找非0的最低值

时间:2015-03-25 17:05:15

标签: javascript d3.js

我尝试使用D3查找数据集中的最低值。但是,我也有0的值,但我希望D3找到不是0的最低值。

目前我正在使用:

d3.min(data,function(d){return d.houseValues;})

但很明显,当找到0时,这有时会返回0。

有办法做到这一点吗?或者是使用if语句构建普通for循环以忽略0值的唯一解决方案..?

谢谢!

2 个答案:

答案 0 :(得分:7)

您可以使用常量Infinity,因为Math.min(Infinity, someNumber)始终返回someNumber(除非someNumber也是无穷大)。所以它看起来像这样:

smallest = d3.min(data, function(d) {return d.houseValues || Infinity; })

如果需要,您可以检查smallest == Infinity,如果所有房屋价值均为0,则为true

答案 1 :(得分:1)

首先尝试过滤数据以删除零,例如

var noZeroes = data.filter(function(d) { return d.houseValues !== 0; });
d3.min(noZeroes, function(d) {return d.houseValues; })