2016-11-04 26 views
3

我想定義一個包含變量的變量。在這個例子中,我想傳遞的變量是「filldata」。如何在JavaScript中的變量傳遞變量?

我曾嘗試通過它使用$ filldata以及+ filldata +。

if (fill == true) { 
    $filldata = "fill: true,"; 
} else { 
    $filldata = "fill: false,"; 
}; 

if (amount == true) { 
     var set1 = { 
      label: "Earnings", 
      id: "earnings", 
      data: data1, 
      points: { 
       show: true, 
      }, 
      bars: { 
       show: false, 
       barWidth: 12, 
       aling: 'center' 
      }, 
      lines: { 
       show: true, 
       $filldata 
      }, 
      yaxis: 1 
     }; 
    } else { 
     var set1 = ""; 
    } 
+0

'var a = b,b = c,c = 1;'?我不明白嗎? – zer00ne

+1

你想動態地設置一個物體的屬性。在你的例子中,你可以簡單地做'行:{show:true,fill:fill}'。另外,你可以給變量分配名稱和值(例如'key ='fill'; value = true'),並執行'lines:{show:true,[key]:value}'。 –

+1

現在不要在你的'set'對象中使用'$ filldata',爲什麼不做'fill:$ filldata'並將'$ filldata'設置爲true或false? – j08691

回答

2

既然你只是想創建一個名爲「補」的布爾屬性一些變量的值,也被稱爲填充(用挑剔truthy/falsy值),那麼你可以跳過創建中間$ filldata完全變量,只需創建內嵌評估值的屬性。它更簡潔,更明顯。

嘗試:

if (amount == true) { 
    var set1 = { 
     label: "Earnings", 
     id: "earnings", 
     data: data1, 
     points: { 
      show: true, 
     }, 
     bars: { 
      show: false, 
      barWidth: 12, 
      aling: 'center' 
     }, 
     lines: { 
      show: true, 
      fill: fill==true 
     }, 
     yaxis: 1 
    }; 
} else { 
    var set1 = ""; 
} 

編輯:

另外請注意,這是不好的做法,如果你打算在其他地方使用它來聲明,如果區塊範圍內的變量設置1。更好的選擇是:

var set1 = (amount == true) ? 
    {...your object as defined above...} 
    : ""; 
+0

如果您提供了對問題/解決方案的解釋,而不僅僅是代碼和「嘗試」,它會更有用。 –