Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Оптимальный способ построения сложного условия с множеством параметров (https://javascript.ru/forum/misc/34741-optimalnyjj-sposob-postroeniya-slozhnogo-usloviya-s-mnozhestvom-parametrov.html)

Deff 19.01.2013 01:24

nerv_,
Второй больше нравицо - более кроссбраузерно!

Уханов Сергей 20.01.2013 17:55

Цитата:

Сообщение от Deff (Сообщение 228052)
Или
var Key_active_elements =''+ 
1*(e.car_distribution == 1)+
1*(e.round_the_clock == 1)+
1*(e.wifi == 1)+
1*(e.promo == 1);

Тогда анализируете на совпадение
if (Key_active_elements=='11011') { //

Простите, Deff, если я правильно понял вашу затею, Вы предлагаете описаным выше способом получать состояние каждой записи в grep и сравнивать с текущим состоянием фильтров. Это, конечно, сократит код, но обламает логику, фишка в том что нельзя однозначно по фильтру возвращать запись, потому, что отсеются те которые удовлетворяют условиям фильтра. Необходимо учитывать и внутренние перестановки текущей последовательности. т.е. нужно учитывать при сочетании 1011.
1011 || 1000 || 0001 || 0010 || 1001 || 1010 || 0011
вот именно это и выносит мозг. Но в любом случае, огромное всем спасибо, что не остаетесь безучастными!

Deff 20.01.2013 18:57

Цитата:

Сообщение от Уханов Сергей
что отсеются те которые удовлетворяют условиям фильтра. Необходимо учитывать и внутренние перестановки текущей последовательности. т.е. нужно учитывать при сочетании 1011.

Допустим наличие двух последних 11
alert('1011'.search(/..11$/)!=-1)

Допустим наличие первых трёх 101
alert('1011'.search(/101.$/)!=-1)

Допустим наличие 1X1X
alert('1011'.search(/1.1.$/)!=-1)


Часовой пояс GMT +3, время: 19:13.