动态分配变量名称JavaScript



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

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

任何帮助都将不胜感激。

谢谢,刮擦猫

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

  1. 以固定的方式指定它们(例如obj.propertyName = 'Value'(
  2. 使用数组符号(例如obj[propertyName] = 'Value'(指定它们。在这种情况下,请注意属性名称是字符串值。

在这两种情况下,结果都将完全相同。您可以同样检索这些属性,例如obj.propertyNameobj[propertyName]。两者都将返回'Value'

在您的情况下, @luudjacobs关于使用窗口对象的建议很可能会解决问题...

您可以使用键将是输入值的数组,并且值将是您想要的任何东西。

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(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>

最新更新