2016-08-29 93 views
0

我有一些变量有一个关键字,然后是一个标识符,我试图评估这个表达式。从JavaScript中的变量评估布尔表达式

例子:

$day = today; //Assume it is Monday 
$.each(responseAdvertiser, function(index, value) { 
    var hasMonday = value.hasMonday;  //TRUE OR FALSE 
    var hasTuesday = value.hasTuesday; //TRUE OR FALSE 

    //Whar I'm trying to do: 
    var has="has"; 
    var img="img"; 
    var txt="txt"; 
    var day = $day.toLowerCase(); //monday 
    var hasDay = has+day;   //hasmonday 

    if (hasDay == true){   // TRYING TO EVALUATE THIS 
     var dayImg= day+img;   //mondayimg 
     var dayTxt = day+txt;   //mondaytxt 

     var todayImg = value.dayImg; 
     var todayTxt = value.dayTxt; 
    // I know how to make this work in PHP using variable variables, like 
    // $x = hello 
    // $hello = buddy 
    // echo $$x #PRINTS buddy 
    } 
} 

我试图评估hasmonday,但因为我使用变量“hasDay”这仅仅是一个名为字符串“hasmonday”它并没有真正评价我需要的方式至。

希望我明确表示,如果不是,评论,我会尽力解释它。提前致谢。

+0

得到布尔值'如果(hasDay ===“hasmonday”){}' –

+1

您比较字符串到布尔值,它应该总是返回false – davidhu2000

+0

问题是,它不只是hasmonday,但我有hastuesday,haswednesday等等。而且我需要根据今天的工作日评估所有这些日子。 – HiGonz

回答

1

要按名称访问属性,请使用方括号表示法。

因此,对于你例如,您可以通过

var hasDay = "hasMonday"; 
var b = value[hasDay]; // equivalent to 'var b = value.hasMonday;' 
if (b) { 
    // code here 
} 
+0

谢谢!这工作完美 – HiGonz