2016-11-04 70 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

如果您提供了对问题/解决方案的解释,而不仅仅是代码和“尝试”,它会更有用。 –