我有一个由3个嵌套数组组成的数组,每个数组包含3个对象。我使用什么d3语法来找到所有数据中data 1的最大值?
是不是像,
function find_max(all_data, i){
return d3.max(all_data[i].data1)
}
下面是我的数据结构:
all_data = [
[{data1:2, age:6},
{data1:4, age:5},
{data1:5, age:4}],
[{data1:7, age:2},
{data1:1, age:9},
{data1:0, age:8}],
[{data1:5, age:9},
{data1:6, age:9},
{data1:8, age:6}]
]
基本上,我希望它返回8。谢谢你的帮助!!我不能完全得到它的权利。
3条答案
按热度按时间k3fezbri1#
我们可以混合使用
d3.max
和Array.map
操作:这会使用
d3.max
来寻找最大值,并使用map
运算将对象的巢状数组转换成data1
值的数组([2, 4, 5]
代表第一个巢状数组),以寻找每个巢状数组的最大值。对于每个次极大值,我们再次使用
d3.max
找到全局极大值。第一个
如果您对
flatMap
的概念感到满意,还可以执行以下操作:但这需要为数组创建一个
flatMap
函数:其中,
flatMap
操作将嵌套列表扁平化:最后,如果你想同时得到最大值和最小值,我们可以混合使用
Array.flatMap
和d3.extent
:dced5bon2#
最简单的方法可能是嵌套
d3.max()
:对
d3.max()
的外部调用使用其访问器函数来访问每个嵌套数组的最大值。内部调用将确定每个嵌套数组的最大值。为此,它定义了一个访问器函数来返回data1
属性。请看下面的工作演示:
第一个
或者,您可以先使用
d3.merge()
将巢状数组合并为一个数组,然后将d3.max()
套用至合并的数组。以下是工作演示:
第一个
rggaifut3#
您可以Map内部的
data1
值并获取最大值,然后获取外部数组的结果。