D3.js 在键为数组的对象中查找最大值?
使用D3,如何在所有值都是浮点数组的对象中找到最大值D3.js 在键为数组的对象中查找最大值?,d3.js,D3.js,使用D3,如何在所有值都是浮点数组的对象中找到最大值 var data = { "point1": { "level1": [...], "level2": [...] }, ... }; 我读了,但我不确定在这里做什么,因为这是数组的对象 目前我正在做这件事,这很糟糕: var c1Max = d3.max(data.point1.level1, function(d) { return d.value; }); var
var data = {
"point1": {
"level1": [...],
"level2": [...]
},
...
};
我读了,但我不确定在这里做什么,因为这是数组的对象
目前我正在做这件事,这很糟糕:
var c1Max = d3.max(data.point1.level1, function(d) { return d.value; });
var c2Max = d3.max(data.point1.level2, function(d) { return d.value; });
var c3Max = d3.max(data.point2.level1, function(d) { return d.value; });
var c4Max = d3.max(data.point2.level2, function(d) { return d.value; });
var c5Max = d3.max(data.point3.level1, function(d) { return d.value; });
var c6Max = d3.max(data.point3.level2, function(d) { return d.value; });
var max = d3.max([c1Max, c2Max, c3Max, c4Max, c5Max, c6Max]);
也许我应该迭代所有的键?或者我可以用某种方式将数据
对象展平?或者有更好的方法 您可以使用将对象转换为可以迭代的对象:
var max = d3.max(d3.entries(data), function(d) {
return d3.max(d3.entries(d.value), function(e) {
return d3.max(e.value);
});
});
在这种特殊情况下(不需要键),您当然也可以使用,这使得上面的代码略短一些
要使其与JSFIDLE中的结构一起工作,您需要以下代码:
var max1 = d3.max(d3.entries(data), function(d) {
return d3.max(d3.entries(d.value), function(e) {
return d3.max(e.value, function(f) { return f.value; });
});
});
该编辑返回一个对象。。。如果有用的话,这里有一个JSFIDLE:好的,这与您在问题中描述的结构略有不同。再次编辑。