- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:eval()の戻り値)
配列の数を指示せずに定義した配列だけを表示する方法はあるか
このQ&Aのポイント
- 配列Menuの要素数を指示せずに、定義した配列のみを表示する方法はあるかについて質問しています。
- forループの条件をj<=5のように指示せずに動作できる方法や、配列Menuが未定義の場合にforループを抜ける方法について疑問を持っています。
- また、要素数をあらかじめ指示せずに、定義した配列のみを表示する方法を求めています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
No.1です。 前回の回答でMenuArayがMenuArrayになっていようなので、それが原因だと思います。 MenuArrayをMenuArayに直して下さい。
その他の回答 (1)
- Bonjin
- ベストアンサー率43% (418/971)
回答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)の意味が良くわからないので調べていますが。 まずは、お礼まで。
お礼
Bonjinさん、レスありがとうございます。 できました。 自分で気がつかなくて申し訳ありません。 どうもありがとうございました。