javascript超初心者です。(PHP、VBは基礎の基礎レベルは分かります)
掲題の件ですが、掲題の件をどのようにすれば実現できるかご教授ください。
javascript
1 2function test_1(){ 3return 'test1'; 4} 5 6function test_2(){ 7return 'test2'; 8} 9︙ 10 11 12for (var i=1 ; i<=3 ; i++){ 13 console.log( 'test_'+i+'()' ); 14}
こちらを参考にfor文の部分をこのように変更しましたがNG
javascript
1window['test_'+i]();
javascript
1console.log( window['test_'+i]() );
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答5件
0
ベストアンサー
JavaScript
1function test_1(){ 2 return 'test1'; 3} 4function test_2(){ 5 return 'test2'; 6} 7var array = [ test_1, test_2 ] 8for ( var i=0 ; i<2 ; i++ ) { 9 console.log( array[ i ]() ); 10} 11```とか。 12 13--- 14 15**追記:** 16 17下記をtest.htmlとか名前を付けてUTF-8で保存し、ブラウザで開いてみてください。 18 19```HTML 20<!DOCTYPE html><html><head><meta charset="utf-8"> 21<title>test_1</title> 22</head><body> 23<script> 24function test_1(){ 25 return 'test1'; 26} 27function test_2(){ 28 return 'test2'; 29} 30for (var i = 1 ; i < 3 ; i++){ 31 console.log( window['test_'+i]() ); 32} 33</script> 34</body></html>
投稿2016/09/06 08:11
編集2016/09/06 12:11総合スコア69364
0
javascript
1 console.log( this['test_'+i]() );
だと動作しましたが、環境によるかもしれませんね。
投稿2016/09/06 09:20
総合スコア35869
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/06 09:42
2016/09/06 11:23 編集
0
結構無理やりになりますが・・・
'test_'+i() ←の形だと【test_】 は文字列として扱われるので、変数の扱いにはなりません。
なので、各functionを配列にいれて実行
script
1var array=[ 2 test_1(),test_2() 3] 4for (var i=0 ; i<=1 ; i++){ 5 console.log( array[i] ); 6} 7 8
ですかね???
でも、あまり正当な気もしないので、あくまで無理やり案だと思ってください。
投稿2016/09/06 07:47
総合スコア118
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/06 08:02
2016/09/06 08:06 編集
2016/09/06 08:06
2016/09/06 08:10
2016/09/06 08:11
2016/09/06 08:17
2016/09/06 08:19
2016/09/06 08:26
2016/09/06 08:39
2016/09/06 08:40
2016/09/06 08:57
2016/09/06 09:06
2016/09/06 09:30
2016/09/06 09:42
2016/09/06 09:42
2016/09/06 09:44
2016/09/06 10:46
2016/09/06 10:47
2016/09/06 11:27
2016/09/06 11:45
2016/09/06 11:46
2016/09/06 12:09
2016/09/07 01:19
2016/09/07 01:42
2016/09/07 01:59
0
はじめまして!
Javascript
1<script> 2 var test_1 = function(){ 3 return 'test1'; 4 }; 5 var test_2 = function(){ 6 return 'test2'; 7 }; 8 var test_3 = function(){ 9 return 'test3'; 10 }; 11 var test; 12 for (var i=1 ; i<=3 ; i++){ 13 eval(("test = test_"+i+"();")) 14 alert(test) 15 } 16</script>
取り急ぎ、こんな感じでしょうか?
肝は eval() かな、と思います。
ループ内で動的な変数を指定する際などに便利ですよ^^
投稿2016/09/06 07:54
総合スコア328
0
eval()
で文字列をコードとして実行できます。
javascript
1function test_1() { 2 console.log('test_1!'); 3} 4eval('test_' + 1 + '();');
投稿2016/09/06 07:49
総合スコア759
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/06 08:14
2016/09/06 08:22
2016/09/06 08:32
2016/09/06 08:44 編集
2016/09/06 08:45 編集
2016/09/06 09:00
2016/09/06 09:04
2016/09/06 09:14
2016/09/06 09:18
2016/09/06 09:38
2016/09/06 09:39
2016/09/06 10:10
2016/09/06 10:56
2016/09/06 11:53
2016/09/06 11:59
2016/09/06 12:21
2016/09/06 12:42
2016/09/06 13:25
2016/09/07 01:04
2016/09/07 01:07
2016/09/07 01:15
2016/09/07 02:01