0

あいまいな質問のタイトルで申し訳ありません-これをどのように表現するかわからない.

基本的に、for ループを使用して凝縮したい次の JavaScript があります。

$('.q1').keyup(function () {
    if ($.inArray($(this).val().toLowerCase(), a1) > -1) {
        //Stuff
    } else {
        //Other stuff
    };
});

$('.q2').keyup(function () {
    if ($.inArray($(this).val().toLowerCase(), a2) > -1) {
        //Stuff
    } else {
        //Other stuff
    };
});

これら 2 つの関数間の唯一の変更点は、最初のクラス (.q1 または .q2) と配列名 (a1 または a2) だけであることがわかります。これまでのところ、私は次のことを行ってきました...

for (var i=1; i<=8; i++) {
    $('.q'+i).keyup(function () {
        if ($.inArray($(this).val().toLowerCase(), a1) > -1) {
            //Stuff
        } else {
            //Other stuff
        };
    });
}

最初のクラスの問題は i 変数をインクリメントすることで解決されていることがわかりますが、ループごとに配列値を変更して a1、a2、a3、a4 などにする方法がわかりません。

どんな助けでも大歓迎です。ありがとうございました。

編集

a1 と a2 は配列を参照しています...

var a1 = new Array();
a1[0] = "egypt";

var a2 = new Array();
a2[0] = "brasil";
a2[1] = "brazil";

クイズの回答ごとに配列があります。各配列には、各質問に対する可能な回答があります。

4

2 に答える 2