2013-07-06 5 views
0

Я пытаюсь сравнить значения двух массивов друг с другом. Если совпадение найдено - сделайте что-нибудь - иначе сделайте это.Сравнение массивов с вложенными циклами

я собрал скрипку с моим кодом на http://jsfiddle.net/ZvmHx/1/

Если вы раскомментировать вторую тревогу по линии 14 вы увидите, что это неправильно. Кажется, я не могу предотвратить второе предупреждение от стрельбы.

Спасибо!

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'); 

    } 
    } 
} 
+0

Что вы хотите сделать? – Prashant16

ответ

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'); 

    } 
} 
+0

ты избил меня. +1. –

+0

Да! Удивительно, спасибо! – andehlu

+0

* Введено по ошибке * –

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'); 

    } 
} 

Надежда, которая помогает ..

+0

Спасибо Abhinsit. Супер оценили! – andehlu

0

Перед предупреждая результат вы должны сравнить значения со всеми элементы во втором массиве Я обновил ваш 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'); 
    } 
} 
+0

Cheers Alex! Отлично. – andehlu

Смежные вопросы