プロパティ
以下、質問のコメント欄から引用します。
この引用文は、後から読む人の為に、質問文を編集して追記して下さい(後述参照)。
JavaScript
1var arraytest= ["りんご", "バナナ"];
2var test = "arraytest";
↑testの中身は状況で変わります
素人の頭の中としては
JavaScript
1console.log(test[0])
でarraytest[0]
の
りんごと出てほしいのです
console.log(test[0])
でもだめだし
console.log(test+[0])
でもだめだし
何をどう検索すれば出てくるのかわからず・・・といった感じです
文字列の識別子で参照させる場合、オブジェクトのプロパティに埋め込む方法があります。
JavaScript
1'use strict';
2var object = {foo: ['りんご','バナナ'], bar: ['東京','大阪']};
3var propertyName = 'foo';
4
5console.log(object[propertyName]); // ["りんご", "バナナ"]
eval()
ローカル変数名を文字列で参照する方法に eval()
がありますが、eval is evilという格言があるように推奨されない関数です。
Function()
Function()
はローカル変数を参照不可能な為、eval()
よりは安全ですが、それでも実行可能な範囲は大きいので、熟練の方でなければお勧めできません。
Function()
は変数の中で、グローバル変数のみを参照できます。
HTML
1<script>
2'use strict';
3var foo = 'Hello';
4var variableName = 'foo';
5var result = Function('return ' + variableName)();
6
7console.log(result); // "Hello"
8</script>
上記コードは任意のコードを実行可能であり、下記のように書き換えると、より安全になります。
HTML
1<script>
2'use strict';
3var foo = 'Hello';
4var variableName = 'foo';
5var result = Function('return this')()[variableName];
6
7console.log(result); // "Hello"
8</script>
しかし、衝突のリスクがあるグローバル変数は出来るだけ回避すべきでしょう。
後から読む人の為に
同様の問題を抱えた人は、あなたが解決した後にこの質問を読むかもしれません。
「コメントされた内容」を https://teratail.com/questions/edit/195030 から、編集して質問文に追記して下さい。
Re: sususususu_ さん