いつもお世話になります。
以下のように配列を定義して、
(1)のforループを抜ける条件をj<=5などのように指示しなくても
できるようにならないかと苦慮しています。
(1)で、
j<=5 が5以下なら動作します。
ところが、6以上となると、配列Menuが定義されていないため
停止してしまいます。
そこで、breakを用いてforループをぬけようとしたのですが何も表示されなくなってしまいます。(5)も実行されません。
(2)(3)(4)と試したのですが、ダメでした。
配列の数をj<=5のように指示しなくても、また、あらかじめ配列の数を変数で定義しなくても、定義した配列だけ表示する方法はないものでしょうか。
よろしくお願いいたします。
Menu1=new Array("aaaaaaaa","");
Menu2=new Array("bbbbbbb","");
Menu3=new Array("cccccccc","");
Menu4=new Array("ddddd","");
Menu5=new Array("eeeeeeeeeee","");
function tstEval(){
document.write('<div id="tstArea">tstArea</div>');
MenuArea=document.getElementById('tstArea');
strHtml="";
for(j=1;j<=5;++j){//(1)
MenuAray=eval('Menu'+j);
// if(MenuAray==empty){//(2)
// if(MenuAray==undefined){//(3)
if(MenuAray==''){//(4)
alert('The End');//(5)
break;
}
strHtml+=j+MenuAray[0]+'<br>';
}
alert(strHtml);
MenuArea.innerHTML = strHtml;
}
No.2ベストアンサー
- 回答日時:
No.1です。
前回の回答でMenuArayがMenuArrayになっていようなので、それが原因だと思います。
MenuArrayをMenuArayに直して下さい。
Bonjinさん、レスありがとうございます。
できました。
自分で気がつかなくて申し訳ありません。
どうもありがとうございました。
No.1
- 回答日時:
evalは戻り値がないので戻り値を利用するのは無理ですね。
> MenuAray=eval('Menu'+j);
を
> eval('MenuArray=Menu' + j);
にしてみて下さい。
でもMenu6が定義されていないならエラーが起きるのでtryを使って下さい。for文のところを書き直すとこんな感じです。
j = 1;
while(true){
try{
eval('MenuArray=Menu' + j);
strHtml += j + MenuAray[0] + '<br>';
j++;
}catch(e){
alert('The End');
break;
}
}
Bonjinさん、早速レスありがとうございます。
早速試してみました。
>alert('The End');
は、実行されるようになりましたが、
>alert(strHtml);
で、strHtmlに、何も表示されません。
だから、ブラウザ画面で、最初表示されていた「tstArea」が表示されなくなる。
と、いう状態となりました。
catch(e)の意味が良くわからないので調べていますが。
まずは、お礼まで。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- PHP ランキングを表示する際の画像の大きさを固定することは可能でしょうか? <?php if ( has_ 1 2022/07/21 14:55
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) 数字が「0」の列を削除するため、下記のコードを実行しましたが、コンパイルエラーSubまたはFunct 3 2022/12/04 00:00
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C#テキストボックスの文字を配...
-
jspからjavascriptの変数引継ぎ
-
同じIDで定義した要素の配列を...
-
javascript 変数名の連結をしたい
-
外部csvデータを読み込む(d3.js)
-
WSH(Jscript)でファイル一覧
-
フォーム入力値の重複チェック
-
undefinedを表示させない方法は...
-
javascriptで行を抽出したいです。
-
JavaScriptで2次元配列を扱う方法
-
google apps scriptの終了のさせ方
-
idを使わずにonclickで自身の要...
-
Boolean型配列中のTrueの有無を...
-
JavaScriptで決まった「時刻」...
-
JavaScript window.openで開く...
-
関数でy=g(x)のgとは何の略です...
-
jqGridについて
-
ActiveXobjectが作成できない
-
javascriptのdocument.allにつ...
-
Vb.netのグローバル変数の宣言...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
同じIDで定義した要素の配列を...
-
C#テキストボックスの文字を配...
-
React hooksが値を返して配列変...
-
オブジェクトから任意のプロパ...
-
javascript 変数名の連結をしたい
-
jspからjavascriptの変数引継ぎ
-
配列の1要素を代入した変数を使...
-
JavaScriptにおける[] とか :...
-
フォーム入力値の重複チェック
-
javascriptで行を抽出したいです。
-
undefinedを表示させない方法は...
-
javascriptで2つのArrayの...
-
WSH(Jscript)でファイル一覧
-
JavaScriptでの動的な多次元配...
-
Perlの配列をJavaScriptに渡せ...
-
[JS] setAttributeで保存される...
-
JSONデータを50音順でソートしたい
-
二次元配列の全要素の全要素を...
-
javascriptを用いて作成された...
-
バナーのランダム表示(複数、...
おすすめ情報