动态更改变量名称

时间:2018-03-07 18:21:14

标签: javascript jquery

var x = [];

$('input').click(function(){
  $(this.value).push('Hello'); //x.push('Hello');
  alert(x) //Expected Result: 'Hello'
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='button' value='x'>

我想将值Hello推送到局部变量数组,其标识符等于所单击按钮值的标识符。例如,如果点击了带有value="x"的按钮,我希望var x = ...更新。同样,如果点击value="y",则应更新var y = ...

这可能吗?

1 个答案:

答案 0 :(得分:1)

最简单的方法是使用一个对象来包含变量。默认情况下,使用window对象,但这是不好的做法。您可以自己包装变量,如下所示:

var values = {
  x: [],
  y: [],
  z: []
};

$('input').click(function(){
  values[this.value].push('Hello'); //x.push('Hello');
  alert(values[this.value]) //Expected Result: 'Hello'
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='button' value='x'>
<input type='button' value='y'/>
<input type='button' value='z'/>