Максимальное значение можно найти, применив формулу в цикле reduce()
, всегда возвращающем максимальное значение (по любому желаемому критерию).Это более эффективно, чем сортировка всего массива, поскольку вам нужен только один проход, и вы не создаете новый массив только для того, чтобы выбросить его. Он вернет объект из массива, отвечающий заданным вами критериям:
let arr = [
{ "id": 3, "impact": 7, "probability": 0.7, "title": "Risk 3" },
{ "id": 4, "impact": 4, "probability": 0.72, "title": "Risk 4" },
{ "id": 5, "impact": 1, "probability": 0.6, "title": "Risk 5" },
{ "id": 6, "impact": 8, "probability": 0.91, "title": "Risk 6" }
]
// max impact * probability
let max = arr.reduce((max, current) =>
current.impact * current.probability > max.impact * max.probability
? current
: max
)
console.log(max)
Для одного значения это та же идея, но проще:
let arr = [
{ "id": 3, "impact": 7, "probability": 0.7, "title": "Risk 3" },
{ "id": 4, "impact": 4, "probability": 0.72, "title": "Risk 4" },
{ "id": 5, "impact": 9, "probability": 0.1, "title": "Risk 5" },
{ "id": 6, "impact": 8, "probability": 0.91, "title": "Risk 6" }
]
// max impact
let max = arr.reduce((max, current) =>
current.impact > max.impact
? current
: max
)
console.log(max)