Самый простой способ - извлечь функцию min из фильтра следующим образом:
let min = Math.min(...data.map(item => item.rest))
Это гораздо эффективнее, так как мы больше не перебираем данные, чтобы найти мин для каждой итерации фильтра.
Теперь у нас есть n * 2 прохода вместо n ^ 2 прохода. (n - размер вашего набора данных, в данном случае 5)
Полный пример ниже:
let data = [
{ size: 5, qty: 2, rest: 0 },
{ size: 2, qty: 5, rest: 0 },
{ size: 1, qty: 10, rest: 0 },
{ size: 3, qty: 3, rest: 1 },
{ size: 4, qty: 2, rest: 2 }
]
let min = Math.min(...data.map(item => item.rest))
let result = data.filter(item => item.rest === min)
console.log(result)
Надеюсь, это поможет!
Lloyd