inkShio
@inkShio

Как сравнить переменную с ключами объекта?

Есть переменная let number = 323;
И есть объект
let obj = { 
  50: "3500", 
  100: "6000", 
  200: "8000", 
  300: "10500", 
  500: "13000", 
  501: "индивидуально" 
};

Не могу сообразить как сравнить number с ключом объекта.
Т.е. number находится между 300 и 500 мы должны получить 10500. А если number > 501 то вывести индивидуально.
Подскажите в какую сторону копать.
  • Вопрос задан
  • 240 просмотров
Решения вопроса 2
Fragster
@Fragster
помогло? отметь решением!
Комментировать
sergiks
@sergiks Куратор тега JavaScript
♬♬
Можно отсортировать по ключам по убыванию, и найти find() первый, где данное число окажется больше ключа.
Если не нашлось такое, отдать последнее значение (с минимальным ключом).
что за entries ?
Object.entries(obj) делает из объекта массив пар [[ключ, значение], ... ] — 
[
  [50: "3500"],
  [100, "6000"], 
  ...
]

const findRange = n => {
  const obj = { 
    50: "3500", 
    100: "6000", 
    200: "8000", 
    300: "10500", 
    500: "13000", 
    501: "индивидуально" 
  };
  const lookup = Object.entries(obj).sort(([a], [b]) => b - a);

  return (lookup.find(([k, v]) => Number(k) <= n) ?? lookup.pop())[1];
};

findRange(49) // "3500"
findRange(99) // "3500"
findRange(100) // "6000"
findRange(500) // "13000"
findRange(501) // "индивидуально"
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы