質問編集履歴

4 最適解

kuroishi

kuroishi score 47

2019/04/24 10:06  投稿

ローカル変数にグローバル変数の配列を代入したい。
お世話になっております。今回は題名の通り、ローカル変数にグローバル変数の配列を代入したいと考えています。
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>');  
   });  
}  
```
  • JavaScript

    31677 questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

3 回答

kuroishi

kuroishi score 47

2019/04/23 22:43  投稿

ローカル変数にグローバル変数の配列を代入したい。
お世話になっております。今回は題名の通り、ローカル変数にグローバル変数の配列を代入したいと考えています。
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'],
   '2018': ['abc', 'cdf'],
   '2017': ['fdsfsfa', 'hogehoge'],
   '2016': ['mioonono', 'irewrln'],
}                                 
for(var year = 2014; year<2030; year++){
   var before_number = number[year];
   console.log(it_number);
   var it_number = before_number.length;
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";
   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++;
   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>');
   }
}
```
  • JavaScript

    31677 questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

2 再度質問のため

kuroishi

kuroishi score 47

2019/04/23 20:59  投稿

ローカル変数にグローバル変数の配列を代入したい。
お世話になっております。今回は題名の通り、ローカル変数にグローバル変数の配列を代入したいと考えています。
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 = 2014; year<2030; year++){
   var before_number = number[year];
   console.log(it_number);
   var it_number = before_number.length;
   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++;
   }
}
```
  • JavaScript

    31677 questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

1 間違った点があったため

kuroishi

kuroishi score 47

2019/04/23 20:11  投稿

ローカル変数にグローバル変数の配列を代入したい。
お世話になっております。今回は題名の通り、ローカル変数にグローバル変数の配列を代入したいと考えています。
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+'?controls=2" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen class="youtube"></iframe>');
    $(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']を代入したい。
よろしくお願いいたします。
  • JavaScript

    31677 questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る