2013-07-26 2 views
0

Я пытаюсь сравнить два массива, чтобы найти один или несколько совпадений из них. Кто-нибудь мне помогает?Как сравнить значения в массиве, чтобы найти одно или несколько совпадений в другом массиве?

http://jsfiddle.net/gmRDk/2/

$("button").click(function(i) { 

var products = [2, 5, 6, 7, 200]; 
var item_id = [2, 1, 6, 200]; 

$.each(item_id, function() { 
if ($.inArray(this, products) !== -1) { 
    alert('Match Prod: ' + this); 
} else { 
    alert('Not Match: ' + this); 
} 
}); 
}); 
+0

Для поиска совпадений требуется, по крайней мере, две петли, взяв каждый элемент из одного и сравнивая его с другим. Будет лучше, если вы попробуете и опубликуете, какие ошибки вы получите. – Totoro

ответ

1

В каждом обратного вызова this указывает на объект, а не к значению

var products = [2, 5, 6, 7, 200]; 
var item_id = [2, 1, 6, 200]; 
$.each(item_id, function(idx, value) { 
    if ($.inArray(value, products) !== -1) { 
     console.log('Match Prod: ' + value); 
    } else { 
     console.log('Not Match: ' + value); 
    } 
}); 

Демо: Fiddle

0
$("button").click(function(i) { 

    var products = [2, 5, 6, 7, 200]; 
var item_id = [2, 1, 6, 200]; 
    var len=products.length; 
    for(i=0;i<len;i++){ 
    if($.inArray(products[i],item_id)==-1) 
    { 
     alert("not in array item_Id :"+products[i]); 
    } 
     else{ 
      alert("in array item_ID :"+products[i]); 
     } 
    } 
}); 

вы можете проверить каждый отдельный элемент массив вроде этого. demo: http://jsfiddle.net/gmRDk/3/

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