如何获得密钥“sample”的最大值?
我可以使用d3.max(myData)
获取[1,2,3]
之类的数组的最大值。对于我更复杂的示例,我可以使用访问器函数来获取myData
之外的值。这个访问器功能是什么样的?
var myData = [
{ type: "a", sample: 28, population: 32},
{ type: "b", sample: 24, population: 19},
{ type: "c", sample: 19, population: 23},
{ type: "d", sample: 29, population: 26}
];
答案 0 :(得分:2)
将为每个数组元素计算访问器函数,并将元素作为第一个参数传递。考虑到这一点,您可以执行以下操作:
d3.max(myData, function(d) {
return d.sample;
});
答案 1 :(得分:2)
作为已提供答案的扩展,我想添加两件事。首先非常明显 - 有一种获得最小值的等效方法。第二个是我在评估计算域和范围的极值时我自己做过的事情。
var min = d3.min(data, function (d) { return d.val; });
var max = d3.max(data, function (d) { return d.val; });
var colors = d3.scale.linear()
.domain([min, max])
.range(["blue", "red"]);
但是,有一个函数返回两者。它只是以一种笨拙且不直观的方式命名,IMnHO - d3.extent。它允许你省略两条线来计算极值,看起来非常整洁。
var colors = d3.scale.linear()
.domain(d3.extent(data, function (d) { return d.val; }))
.range(["blue", "red"]);