#d3.js #multidimensional-array #max
Вопрос:
У меня есть вложенный массив, который выглядит следующим образом: Вложенный массив
Я хотел бы пройти по вложенному массиву и найти максимальное значение поля «значение», расположенного в разделе grouped_ratings > значения >> >>значение
Я попробовал следующее и, похоже, не могу разобраться в проблеме.
var yMax = d3.max(grouped_ratings, function(g) {
return d3.map(g.values, function(v) {
return d3.max(v.value)
})
});
Ответ №1:
Переключитесь d3.map
на d3.max
самую внутреннюю функцию и в ней, вы можете просто return v.value
. Вот как это выглядит:
d3.max(grouped_ratings, function (g) {
return d3.max(g.values, function (v) {
return v.value;
});
});
Или в виде однострочного: d3.max(grouped_ratings, g => d3.max(g.values, v => v.value))
Эти фрагменты работают, когда grouped_ratings
имеет формат
grouped_ratings = [
{
key: '2011',
values: [
{ key: '1', value: 151 },
{ key: '2', value: 12 },
{ key: '3', value: 314 },
{ key: '4', value: 178 },
{ key: '5', value: 31 },
{ key: '6', value: 1 },
{ key: '7', value: 1 },
]
},
{
key: '2012',
values: [
{ key: '1', value: 203 },
{ key: '2', value: 4 },
{ key: '3', value: 41 },
{ key: '4', value: 87 },
{ key: '5', value: 13 },
{ key: '6', value: 10 },
{ key: '7', value: 100 },
]
},
]