Как отфильтровать объект в настройках в JavaScript - PullRequest
0 голосов
/ 15 апреля 2019

Я определяю самую дешевую, лучшую и самую быструю скорость в объекте, основываясь на следующих факторах:

  • самый дешевый определяется по netfee, имеющему наименьшее значение
  • самый быстрый определяется speed с наименьшим количеством дней
  • лучшее определяется по amount, имеющему наибольшее значение

Но что, если самые высокие скорости одинаковы? Тогда от чего должен зависеть фактор, не противоречащий двум другим? Если, например, «самый быстрый» определяется с использованием speed с меньшим количеством дней и && amount с самым высоким значением, это конфликтует с best, в результате лучшие и самые быстрые значения совпадают

Мне нужно знать, какой фактор должен зависеть от того, когда скорость одинакова для всех

var obj = [{
  id: "sample1",
  netfee: 10,
  speed: "1days",
  amount: "100",
  rate: "0.5",
  netamount: "50"
}, {
  id: "sample2",
  netfee: 6,
  speed: "1days",
  amount: "200",
  rate: "0.1",
  netamount: "20"
}, {
  id: "sample3",
  netfee: 4,
  speed: "3days",
  amount: "500",
  rate: "0.2",
  netamount: "100"
}];

var cheapest = obj.reduce((acc, cur) => (acc.netfee < cur.netfee ? acc : cur)).id,
  fastest = obj.reduce((acc, cur) => (parseInt(acc.speed, 10) < parseInt(cur.speed, 10) ? acc : cur)).id,
  best = obj.reduce((acc, cur) => (Number(acc.amount) > Number(cur.amount) ? acc : cur)).id;

console.log("cheapest =", cheapest)
console.log("fastest  =", fastest)
console.log("best     =", best)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...