gpt4 book ai didi

d3.js - 在键为数组的对象中查找最大值?

转载 作者:行者123 更新时间:2023-12-01 01:05:42 24 4
gpt4 key购买 nike

使用 D3,如何在所有值都是浮点数组的对象中找到最大值?

  var data = {
"point1": {
"level1": [...],
"level2": [...]
},
...
};

我读了 Mike's answer on finding the max of a nested array ,但我不确定在这里做什么,因为这是一个数组对象。

目前我正在这样做,这很糟糕:
  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]);

也许我应该遍历所有键?或者我可以把 data 弄平以某种方式反对?或者也许有更好的方法。

最佳答案

您可以使用 d3.entries 将对象转换为可以迭代的对象:

var max = d3.max(d3.entries(data), function(d) {
return d3.max(d3.entries(d.value), function(e) {
return d3.max(e.value);
});
});

在这种特殊情况下(不需要 key ),您当然也可以使用 d3.values ,这使得上面的代码更短一些。

要使其与 jsfiddle 中的结构一起使用,您需要以下代码:
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; });
});
});

关于d3.js - 在键为数组的对象中查找最大值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18905327/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com