我是D3和Javascript社区的新手。我有一个对象(国家)数组,每个对象由key和它的值(收入)表示的年份组成。
如何获得所有对象的最小和最大收入值及其设置颜色图例的关键字?
请找到该项目的链接https://observablehq.com/d/287af954b6aaf349,希望它能帮助解释这个问题。
感谢您阅读这些问题。
发布于 2020-10-13 20:35:37
要获得全局最大值,您可以使用
const max = d3.max(
countries.map(country =>
d3.max(Object.values(country))));
// 179000
它所做的就是迭代各个国家,从每个国家获取所有值的最大值。然后,它取这些最大值中的最大值并返回它。
为了获得相应的年份,它变得更加复杂。您可以使用Object.entries
来获取键值对,而不仅仅是值。然后,您可以手动循环遍历每个国家/地区,更新最大值以及相应的年份
data.reduce((max, country) => {
const newMax = d3.max(Object.values(country));
if(newMax > max.value) {
return {
year: Object.entries(country).find(([year, value]) => value === newMax)[0],
value: newMax,
};
}
return max;
}, {value: 0});
// {year: "2040", value: 179000}
https://stackoverflow.com/questions/64334450
复制相似问题