2013-07-26 55 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]); 
     } 
    } 
}); 

您可以檢查每個元素像這樣的數組。 演示:http://jsfiddle.net/gmRDk/3/

相關問題