0

2 つの配列の値を互いに比較しようとしています。一致が見つかった場合 - 何かを行い、それ以外の場合はこれを行います。

http://jsfiddle.net/ZvmHx/1/で自分のコードにフィドルをまとめました

14 行目の 2 番目のアラートのコメントを外すと、何が問題なのかがわかります。2 番目のアラートの発生を防ぐことはできないようです。

ありがとう!

var getkeywords = ["John","Frank","Sarah"]; 
var captionarray = ["Jim","Joe","Lee","Steve","John","Michelle","Brad"];    

for (k = 0; k < getkeywords.length; k++) {
    for (l = 0; l < captionarray.length; l++) {

    if(getkeywords[k] == captionarray[l]){

        alert('Found > ' + getkeywords[k] + ':filter image');

    }else{

        //alert('not found > ' + getkeywords[k] + ':filter image');

    }
  }
}
4

3 に答える 3

2

if/else は、内側のループの反復ごとにテストされています。内側のループが実行されたに一致するかどうかをテストしていると思います。何かのようなもの:

var getkeywords = ["John","Frank","Sarah"]; 
var captionarray = ["Jim","Joe","Lee","Steve","John","Michelle","Brad"];    
var matchFound;

for (k = 0; k < getkeywords.length; k++) {
    matchFound = false;

    for (l = 0; l < captionarray.length; l++) {
        if (getkeywords[k] == captionarray[l]){
            matchFound = true;
            break;
        }
    }

    if(matchFound){

        alert('Found > ' + getkeywords[k] + ':filter image');

    }else{

        alert('not found > ' + getkeywords[k] + ':filter image');

    }
}
于 2013-07-06T12:31:34.310 に答える
0

新しいフィドルを作成しました:-

http://jsfiddle.net/WZGyy/

var getkeywords = ["John","Frank","Sarah"]; 
var captionarray = ["Jim","Joe","Lee","Steve","John","Michelle","Brad"];    

imagecode = '';
var found=0;
for (k = 0; k < getkeywords.length; k++) 
{
    for (l = 0; l < captionarray.length; l++) 
    {

        if(getkeywords[k] == captionarray[l])
        {


            found=1;
            break;

        }
    }

    if(found==1)
    {
        alert('Found > ' + getkeywords[k] + ':filter image');
        found=0;  


    }
    else
    {
        alert('not found > ' + getkeywords[k] + ':filter image');

    }
}

それが役立つことを願っています..

于 2013-07-06T12:33:10.533 に答える
0

結果を警告する前に、値を 2 番目の配列のすべての項目と比較する必要があります。jsfiddle を更新しました — http://jsfiddle.net/ZvmHx/5/を試してみてください

var getkeywords = ["John","Frank","Sarah"]; 
var captionarray = ["Jim","Joe","Lee","Steve","John","Michelle","Brad"];    

imagecode = '';
for (k = 0; k < getkeywords.length; k++) {
    var isExists = false;
    for (l = 0; l < captionarray.length; l++) {
        if (getkeywords[k] == captionarray[l]){                     
            isExists = true;
            break;
        }
    }

    if (isExists) {
        alert('Found > ' + getkeywords[k] + ':filter image');
    } else {
        alert('not found > ' + getkeywords[k] + ':filter image');
    }
}
于 2013-07-06T12:34:26.997 に答える