如何创建动态if条件

时间:2014-02-15 13:59:58

标签: javascript conditional-statements

我想制作动态过滤方法,但不知道如何动态包含条件。

示例

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 vars构建动态if子句。

真实用例

我有一个任务列表,想要过滤它们:

  • 如果“已分配给我”过滤器处于活动状态,则它应仅返回分配给我的任务。
  • 如果“高优先级”过滤器和“已分配给我”过滤器处于活动状态,则它应仅返回分配给我并具有高优先级的任务。
  • ......依旧......

我使用filter方法,但我只使用OR逻辑(显示分配给我的任务或具有高优先级):

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

1 个答案:

答案 0 :(得分: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/

这只是关于如何创建动态if条件的提示。现在您知道如何创建动态if条件。

根据您的需求编码!