お世話になっております。今回は題名の通り、ローカル変数にグローバル変数の配列を代入したいと考えています。
Javascript
var i=0; var number2018 = ['abc', 'cdf']; var number2017 = ['fdsfsfa', 'hogehoge']; var number2016 = ['mioonono', 'irewrln']; for(var year = 2014; year<2030; year++){ var before_number = "number"+year; var it_number = before_number.length; console.log(it_number); var selecter_number = "#"+year+"selecter"; while(i<it_number){ $(selecter_number).prepend('<iframe src="https://www.youtube.com/embed/'+before_number[i]+'?controls=2" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen class="youtube"></iframe>'); i++; } }
HTML
<div id="2018selecter" class="youtube_frame_base" style="display: flex;"></div> <div id="2017selecter" class="youtube_frame_base" style="display: flex;"></div> <div id="2016selecter" class="youtube_frame_base" style="display: flex;"></div>
今回は今までHTML場でコピーアンドペーストしまくってyoutubeの一覧を作っていたものをもっと簡易的にしたいと考え、javascriptでfor文、while文を使用した記述方法に変更したいと考えました。
やりたいこととして、まずグローバル変数で各年度の動画の識別となる部分を配列で代入しておく。
for文内で各div要素内にコピーアンドペーストを自動的に記述を行なっていきたいという感じです。
問題はローカル変数であるbefore_numberです。この代入している値とグローバル変数の名前が一緒なのでこれで代入できてる?なんて考えていたのですが、代入ができていません。コンソールで確認したところ、変数内はしっかりと文字列が代入されているだけでした。
ここで質問なのですが、このローカル変数にグローバル変数にて定義した配列を代入することはどのように解決すればよいのでしょうか。
例 number2018=['abc','cdf']の値をローカル変数のbefore_numberの値が'number2018'になった時に、before_numberにグローバル変数のnumber2018の['abc','cdf']を代入したい。
よろしくお願いいたします。
修正後
var i=0; const number = { '2018': ['abc', 'cdf'], '2017': ['fdsfsfa', 'hogehoge'], '2016': ['mioonono', 'irewrln'], } for(var year = 2016; year<2030; year++){ var result = String( year ); var before_number = number[result]; if(before_number==undefined){ break; } var selecter_number = "#"+year+"selecter"; for(var i=0; i<30; i++){ var atai = before_number[i]; if(atai==undefined){ break; } $(selecter_number).prepend('<iframe src="https://www.youtube.com/embed/'+atai+'?controls=2" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen class="youtube"></iframe>'); } }
さらに修正後
for(var year = 2016; year<2030; year++){ var result = String( year ); var before_number = number[result]; if(before_number==undefined){ break; } var selecter_number = "#"+year+"selecter"; before_number.forEach(function( index ) { $(selecter_number).prepend('<iframe src="https://www.youtube.com/embed/'+index+'" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen class="youtube"></iframe>'); }); }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/23 11:36
2019/04/23 11:53
2019/04/23 13:44
2019/04/23 14:38
2019/04/24 00:01
2019/04/24 00:04
2019/04/24 01:07