javascriptについてです。


for(var i=0; i<10; i++){
hoge● = i;
}

●印部分に i の番号を入れたいのですが
どのように書けば良いのでしょうか。
下記と同じ様になる様にしたいと言う事です。
配列ではなく、変数にしたいのです。

hoge1 = 1;
hoge2 = 2;
hoge3 = 3;

よろしくお願い致します。

回答の条件
  • 1人1回まで
  • 13歳以上
  • 登録:2017/09/10 20:25:53
  • 終了:2017/09/11 07:06:19

ベストアンサー

id:rsc96074 No.1

rsc回答回数4401ベストアンサー獲得回数4042017/09/10 21:45:24

ポイント100pt

 eval()関数を使うのはどうでしょうか。(^_^;

<script>
var script = '';
for(var i=0; i<10; i++){
    script+="hoge"+i+"="+i+";";
}
eval(script);
document.write(2*hoge5+1);    // 2*5+1=11
</script>
他1件のコメントを見る
id:rsc96074

 for文の中で使うなら、こんなのはどうでしょうか。

<script>
for(var i=0; i<10; i++){
    eval("hoge"+i+"="+i+";");
}
document.write(2*hoge5+1);    // 2*5+1=11
</script>
2017/09/11 00:10:43
id:worldtravel

こういう書き方があるのですね。
勉強になりました。
ありがとうございました。

2017/09/11 07:03:49

その他の回答(1件)

id:rsc96074 No.1

rsc回答回数4401ベストアンサー獲得回数4042017/09/10 21:45:24ここでベストアンサー

ポイント100pt

 eval()関数を使うのはどうでしょうか。(^_^;

<script>
var script = '';
for(var i=0; i<10; i++){
    script+="hoge"+i+"="+i+";";
}
eval(script);
document.write(2*hoge5+1);    // 2*5+1=11
</script>
他1件のコメントを見る
id:rsc96074

 for文の中で使うなら、こんなのはどうでしょうか。

<script>
for(var i=0; i<10; i++){
    eval("hoge"+i+"="+i+";");
}
document.write(2*hoge5+1);    // 2*5+1=11
</script>
2017/09/11 00:10:43
id:worldtravel

こういう書き方があるのですね。
勉強になりました。
ありがとうございました。

2017/09/11 07:03:49
id:psne No.2

ぽけっとしすてむ回答回数505ベストアンサー獲得回数2792017/09/11 03:03:05

ポイント100pt
  • ブラウザ上で動作させる
  • 変数を動的に作る
  • あまり良い方法でなくても良い

という条件であれば、windowオブジェクトに直接変数を追加していく方法があります。

for(var i=0; i<10; i++){
window["hoge"+i] = i;
}
console.log(hoge1); // 1
console.log(hoge2); // 2
console.log(hoge3); // 3
console.log(hoge9); // 9

動作している環境がブラウザの場合、グローバル変数はwindowオブジェクトの子として作成されます。
このため、

var test=100;

window["test"]=100;

は同じ動作(結果)となります。
関数の中で使用した場合で関数の外では結果が異なってしまったり、また、他のコードの影響を受ける・与える事があります。
そのため、あまり良い方法ではないという条件が付きます。

※この回答は、わかりやすさを優先させて表現しています。

id:worldtravel

「window」にすると、このような事が出来るのですね。
今回の私の使い方を考えると問題はありません。
ありがとうございました。

2017/09/11 07:05:39

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません