2014-02-15 15 views
2

Я хочу создать метод динамического фильтра, но не знаю, как динамически включать условия.Как создать динамические условия if

Пример

var do_test_1 = true, 
    do_test_2 = false, 
    do_test_3 = true; 

В настоящее время существует три испытания:

if (foo == bar) // test 1 
if (john == doe) // test 2 
if (jane == doe) // test 3 

Теперь я хочу построить динамический, если п, на основе do_test Варс.

Реальный случай использования

У меня есть список задач, и вы хотите, чтобы фильтровать их:

  • Если «назначен мне» фильтр активен, он должен возвращать только те задачи, которые назначены мне.
  • Если фильтр с высоким приоритетом и фильтр «назначены мне» активны, он должен возвращать только те задачи, которые мне назначены, и имеют высокий приоритет.
  • ... и так далее ...

Я играл с методом filter, но я только заставить его работать с логикой ИЛИ (показать задачи, которые назначены для меня или имеют высокий приоритет) :

var $show = $tasks.filter(function(index, task) { 
    var $task = $(task); 
    return ((task.data('assigned') && filters['mytasks']) || (task.data('priority') == 3 && filters['priority'])) 
}); 

ответ

2

использование eval() функция

for(var i=0;i<3;i++){ 
    var f=i+1; 
    eval("if(f==i+1){alert(i);}"); 
} 

Демо: http://jsfiddle.net/ke42b/2/

Это всего лишь совет о том, как создавать динамические условия. Теперь вы знаете, как создавать динамические условия.

Код в соответствии с вашими потребностями!

Смежные вопросы