Вы можете использовать array#reduce
, чтобы получить минимальное и максимальное значение value
внутри массива values
.Выполните итерацию по каждому объекту массива values
и сравните значения с сохраненным минимальным и максимальным значением, а при появлении нового минимального и максимального значения обновите сохраненное значение.
var collection = [{ "key": "AXCG", "values": [{ "interval": '1_to_2years', "value": 34 }, { "interval": '3_to_4years', "value": 12 }, { "interval": '5_to_6years', "value": 45 }, ] }, { "key": "BDGT", "values": [{ "interval": '1_to_2years', "value": 194 }, { "interval": '3_to_4years', "value": 12 }, { "interval": '5_to_6years', "value": 45 }, ] }, { "key": "YTEF", "values": [{ "interval": '1_to_2years', "value": 0 }, { "interval": '3_to_4years', "value": 12 }, { "interval": '5_to_6years', "value": 15}, ] } ],
result = collection.reduce((r,{values}) => {
values.forEach(({value}) => {
r.min = r.min > value ? value : r.min;
r.max = r.max < value ? value : r.max;
});
return r;
},{min: Number.MAX_SAFE_INTEGER, max: Number.MIN_SAFE_INTEGER});
console.log(result);