2017-06-06 21 views
0

ユーザの入力を使用して変数名を動的に割り当てようとしています。例:変数名を動的に割り当てるJavaScript

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

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

ご協力いただければ幸いです。

はJavaScriptで

+0

へのリンクは、あなたがそれをやりたい何 –

+0

手の込んだていただけますか?ありますか理論的にはグローバルオブジェクトを使用するとできますが、与えられた名前と値に一致する辞書オブジェクトを持つほうが簡単かもしれません – Icepickle

+3

なぜ単に配列/オブジェクトを使用しないのですか? –

答えて

1

すべてが対象で、 スクラッチ猫をありがとうございます。 JavaScriptが動作する方法は、次の2つの方法でオブジェクトにプロパティを追加することができます。

  1. は彼らに固定された方法を指定します(例えばobj.propertyName = 'Value'
  2. は、配列表記(例えばobj[propertyName] = 'Value')を使用して、それらを指定します。この場合、propertyNameは文字列値であることに注意してください。

どちらの場合も、結果はまったく同じになります。それらのプロパティを同様に取得できます。 obj.propertyNameおよびobj[propertyName]。両方とも'Value'を返します。あなたのケースでは

、おそらくトリックを行いますウィンドウオブジェクトを使用する方法についてLuudJacobsの提案... @

+0

はい、別の名前に同じ名前を付けることはできません配列内のオブジェクトそれはクラッシュします。 –

+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(var i = 0; i < 3; i++){ 
    a[x[i].value] = x[i].value; 
} 

値の配列宣言しますそれらのキー名を使用して値にアクセスできます

0123ここで
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>

関連する問題