var array = ["apple", "banana", "orange"];
という配列があった場合、配列の中にappleという文字があるかを調べるとする。上記のようにfor文で
for ( i = 0; i < array.length; i++ ) { if ( array[i] == "apple" ) { //何かの処理を行う } }
配列の中身を繰り返し調べるという手段がありますが、forを使わなくて、配列の中身の値があるかを調べる関数があります。
array.indexOf("apple")のようにindexOf関数の()の中に調べたい値を入れ、配列内に指定した文字列があれば、配列内の順番を返す。
たとえば、appleだった場合は、0番目の値なので、array.indexOf("apple");だと0になります。bananaの場合は1でorangeの場合は2になります。indexOfの()で指定した文字列が無かった場合、たとえばsoyと指定した場合は-1という値が返ってきます。array.indexOf("文字や数字")は、0以上の場合は指定した値があることになり、0よりも小さい数字の場合は指定した値がないことになります。
たとえば、var answer = [1, "Y"];という質問番号とその回答(YesならY、NoならNのようにする)の配列を作ったとして、Yと答えたものだけ処理を続けたいという場合は、下記のようになります。
var answers = [ [1, "Y"], [2, "Y"], [3, "N"] ]; for ( i = 0; i < answers.length; i++ ) { //indexOfは値があれば0以上の数字になるので、0以上の場合はYとみなす if( array[i].indexOf("Y") >= 0 ) { //Yesと答えた質問のみ処理を続ける } }
0 件のコメント:
コメントを投稿