Чтобы сделать бинарный поиск, вам нужен массив объектов с ценами и названиями. Что-то вроде
[1=>{cost:1, name:"name1"} .... 117=>{cost:55233, name:"name555"}]
(не уверен, что правильно описал на js).
Но, по идее, все нормальные языки умеют что-то вроде lower_bound для ассоциативных массивов. Именно эту функцию и надо вызвать. А дальше выбрать лучший из текущего и предыдущего или следующего элемента (в зависимости, как в вашем языке lower_bound работает).
Можно поискать какие-нибудь js библиотеки с нормальным ассоциативным массивом, который это умеет.
Будет также работать за логарифм.