2016-08-29 23 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