Показать сообщение отдельно
  #1 (permalink)  
Старый 17.01.2013, 07:23
Новичок на форуме
Отправить личное сообщение для Уханов Сергей Посмотреть профиль Найти все сообщения от Уханов Сергей
 
Регистрация: 17.01.2013
Сообщений: 5

Оптимальный способ построения сложного условия с множеством параметров
Всем привет, столкнулся со следующей задачей в которой мне нужен совет:

Существует JSON объект который имеет элементы с множеством свойств, некоторые из которых имеют значение 1 или 0. Моя задача отфильтровать JSON объект по нажатию кнопок соответствующих свойств объекта. Например, нажата кнопка wifi, значение элемента переходит в 1 и затем считываются состояние фильтров и выполняется поиск по объекту. Состояние считывается из значений кнопок и выглядит следующим образом: 111 - все нажаты, 000 - ничего не нажато,100 - нажата первая кнопка.
Вот кусочек кода, как сейчас реализовано:
rest = $.grep(restaurants, function(e){
                switch (state_of_buttons) {
                    // All buttons are pressed
                    case '111':
                        if (city_id != 0) {
                        return  (e.city_id == city_id);
                        } else {
                        return  e ;
                        }
                    break
                    // There's no pressed buttons
                    case '000':
                        if (city_id != 0) {
                            return (e.car_distribution == route && e.round_the_clock == schedule && e.wifi == wifi && e.city_id == city_id);
                        } else {
                            return (e.car_distribution == route && e.round_the_clock == schedule && e.wifi == wifi);
                        }
                    break


А теперь суть проблемы - такой подход плохой, при добавлении всего 1 кнопки (сервиса по которому будет фильтроваться JSON объект) количество перестановок становится равным 16 - все это оформлять довольно тяжело да и странно, на мой взгляд.

Пожалуйста поделитесь своими соображениями на счет оптимального способа построения сложного условия. Что то не хочется делать через 0000,1111,0101,1000 и так далее....

Последний раз редактировалось Уханов Сергей, 17.01.2013 в 09:02.
Ответить с цитированием