动态分配变量名称JavaScript

时间:2017-06-06 11:48:26

标签: javascript variables

我正在尝试使用用户的输入动态分配变量名称。例如:

var input = document.querySelector('input');

for(var i = 0; i < 10; i++){
   var newVariableName = //input.value;
}

非常感谢任何帮助。

谢谢你, 划痕猫

2 个答案:

答案 0 :(得分:1)

JavaScript中的所有内容都是一个对象。 JavaScript的工作方式,您可以通过两种方式向对象添加属性:

  1. 以固定方式指定它们(例如obj.propertyName = 'Value'
  2. 使用数组表示法指定它们(例如obj[propertyName] = 'Value')。在这种情况下,请注意propertyName是一个字符串值。
  3. 在这两种情况下,结果都完全相同。您可以同样检索这些属性,例如obj.propertyNameobj[propertyName]。两者都将返回'Value'

    在你的情况下,@ LuudJacobs关于使用窗口对象的建议很可能会成功...

答案 1 :(得分:0)

您可以使用数组,其中键将是输入值,值可以是您想要的任何值。

HTML

<form>

<input type="text" value="demo1" class="example"><br />
<input type="text" value="demo2" class="example"><br />
<input type="text" value="demo3" class="example">

</form>

JS 首先声明数组

var a = new Array();

然后使用for循环将键名分配给数组,该数组将是输入值

for(var i = 0; i < 3; i++){
    a[x[i].value] = x[i].value;
}

最后,您可以使用这些键名来访问值

alert(a['demo1'] + ' ' +a['demo2'] + ' ' + a['demo3']);

这是一个示例链接 https://jsfiddle.net/309fpsjn/1/

<html>
<form>

<input type="text" value="demo1" class="example"><br />
<input type="text" value="demo2" class="example"><br />
<input type="text" value="demo3" class="example">

</form>
<script>
var x = document.querySelectorAll(".example");

var a = new Array();

for(var i = 0; i < 3; i++){
    a[x[i].value] = x[i].value;
}

alert(a['demo1'] + ' ' +a['demo2'] + ' ' + a['demo3']);

</script>
</html>