重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

以下のようにして、配列の数だけfor文を実行したいのですが、配列を入れた変数名の文字数を参照してしまうようでした。どのようにしたら、配列の数を参照させることができるでしょうか。

var array1 = new Array(10);
array1[0]=0;
array1[1]=1;
array1[2]=2;
array1[3]=3;
array1[4]=4;
array1[5]=5;
array1[6]=6;
array1[7]=7;
array1[8]=8;
array1[9]=9;

var array2 = new Array(5);
array2[0]=0;
array2[1]=1;
array2[2]=2;
array2[3]=3;
array2[4]=4;

var arrays = new Array(2);
arrays[0] = "array1";
arrays[1] = "array2";

for (i=0;i<arrays[0].length;i++)
{
alert(i);
}


以下のように、evalを使うと、文法エラーになってしまうようでした。

eval("for (i=0;i<"+arrays[0]+".length;i++)");


以下のように、if文では、意図どおり、配列の数を参照するようでした。

eval("if (value>"+arrays[0]+".length) { alert("OK"); }");

A 回答 (1件)

文字列を入れたら、文字列のサイズになるのは当然です。



arrays[0] = array1;
arrays[1] = array2;
    • good
    • 1
この回答へのお礼

早速、ありがとうございます!ご指摘の通りです。しかし、結果的には、まわりの処理の都合上、""でくくるかたちで落ち着きました。ありがとうございました!

お礼日時:2015/05/07 18:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!