Можно отсортировать по ключам по убыванию, и найти
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) // "индивидуально"