前提・実現したいこと
GASとスプレッドシートで英単語テストを作成中です
「c」で始まる単語であれば、「Cのシート」に対して処理を行いたいので
for内で3回目のループ(i=2)の時はArrayC、4回目のループ(i=3)の時はArrayDといった感じに配列名をしたいのです
質問させて頂きたいのは以下の通りです
0. そもそも配列名をコード処理中に変更できるのか?
0. 出来る場合の記述方法
0. 出来ない場合どの様な仕様が望ましいのか
出来ないものとして、自分では予めアルファベット分の配列を用意したり、if文を繰り返すことで動作させてますが、無駄な記述に思えます
もしこれが平仮名だったら51回も同じ様な記述をしなくてはならない訳ですし
発生している問題・エラーメッセージ
「該当のソースコード」に記述した書き方では上手く変更出来ませんでした
該当のソースコード
1mondai=この上のforで取得した単語 2score=この上のforで取得した点数 3var alphabet = ["A","B"]; 4var alphakosuu = alphabet.filter(String).length; 5Initial=[]; 6initial=mondai.slice(0,1); 7 8for(var j=0; j<alphakosuu; j++){ 9 if(initial.toLowerCase() == alphabet[j].toLowerCase()){ 10 var ini = alphabet[j]; 11 var atama = String("Initial"+ini); 12 atama.push("動かざるなぁ"); 13 14 //動かなかった記述達 15 //String("Initial"+ini).push(mondai,score); 16 //"Initial"+ini.push(mondai,score); 17 //Initial+ini.push([mondai,score]); 18 19 break; 20 } 21} 22 23//暫定措置のコード 24if(initial.toUpperCase() == "A"){InitialA.push([mondai,score,oldscore]);} 25if(initial.toUpperCase() == "B"){InitialB.push([mondai,score,oldscore]);}
試したこと
暫定措置として
- A~Zの数だけifを繰り返す
- A~Zの配列を予め作っておく
というやり方でしのいでます
補足情報(FW/ツールのバージョンなど)
頭文字A~Z全ての単語を1つのシートにまとめれば、各単語を各アルファベットの配列に分ける手順は要らないのですが、今回は分けたいです
回答2件
あなたの回答
tips
プレビュー