Как отфильтровать объект в параметрах в javascript

#javascript #jquery #arrays #object

#javascript #jquery ( jquery ) #массивы #объект

Вопрос:

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

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

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

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

 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) 

Комментарии:

1. Они звучат как вопросы, которые может посоветовать вам только ваш преподаватель.

2. Почему бы просто не использовать их исходный индекс в качестве фактора?

3. Для этого нет технического ответа. Это будет зависеть от требований. Если вы пытаетесь найти «самый быстрый», тогда будет иметь значение только скорость, если два имеют одинаковую скорость, то они оба самые быстрые по определению — вы не можете добавить еще один фактор, если это не связано со скоростью. И это включает в себя случайный порядок, в котором они были изначально сгенерированы — использование порядка, в котором они были сгенерированы, дало бы вам «самый быстрый первый», что просто сбивает с толку.