порядок сортировки ключей в объекте
Добрый день.
Есть функция: function getPercent(type, crcy, sum, daysCount) { var percent = []; percent['rur'] = {1000000:{362:0, 331:8.25, 241:8, 181:7.75, 91:6.5, 0:0}, 5000:{362:0, 331:8, 241:7.75, 181:7.50, 91:6, 0:0}, 0:{362:0, 331:0, 241:0, 181:0, 91:0, 0:0}}; percent['usd'] = []; percent['eur'] = []; for (var sumKey in percent[crcy]) { console.log(sumKey); if (sum >= sumKey) { for (var key in percent[crcy][sumKey]) { console.log('|'.key); if (key <= daysCount) { return percent[crcy][sumKey][key]; } } } } return 'false'; } var perc = getPercent(1, 'rur', 5000, 250); alert(perc); var perc = getPercent(1, 'rur', 100000, 500); alert(perc); Правильно работает в firefox, ie. Не работает в chrome. Видимо из за того, что ключи там сортируются, а не следуют в заданном порядке. Как можно решить эту проблему? Спасибо. |
У ключей нет заданного порядка. Спецификация языка не обещает, что ключи будут перебираться в том же порядке, в котором были заданы.
|
Отсортировать нельзя?
Как можно решить эту проблему? В какую сторону смотреть? |
Собираете ключи в массив и сортируете их по убыванию:
arr.sort(function (a, b) { return b - a; }); |
Спасибо. Пока решил с тем что есть, работает. Но правильное направление понял :-)
|
Часовой пояс GMT +3, время: 08:18. |