2014-03-30 49 views
0

我不想將兩個數組作爲一個整體進行比較,我特別想檢查第二個數組是否有與第一個數組中的值相匹配的值。然後我想返回兩個匹配的值。如何比較兩個JavaScript數組以確定它們是否具有相同的值?

如果我沒有記錯的話,比較兩個數組作爲一個整體會做這樣的:

array1 = [1,2,3]; 
array2 = [1,3,4]; 

console.log(JSON.encode(array1)==JSON.encode(array2)); 

因此,在這種情況下,我想檢查是否有數組2任何匹配值陣列之一,如果兩者都相同,則不是。任何幫助表示讚賞!

+0

「匹配」 - 在位置和價值或只是價值? – nullpotent

+0

只是值,我想返回匹配的值/值。 – KoftaClarence

+0

你應該更新你的問題,因爲你的評論表明你想做的不僅僅是檢查... –

回答

0
var array1 = [1, 2, 3], 
    array2 = [1, 3, 4]; 

var AnyItemsOfArray1InArray2 = array1.some(function(item) { 
    return array2.indexOf(item) > -1; 
}); 
console.log(AnyItemsOfArray1InArray2); 

var ItemsOfArray1InArray2 = array1.filter(function(item) { 
    return array2.indexOf(item) > -1; 
}); 
console.log(ItemsOfArray1InArray2); 
+0

謝謝!如果你不介意,你能解釋每個部分發生了什麼嗎? – KoftaClarence

+0

查看['.some()']的文檔(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some)和['.filter ()'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter) – Andreas

相關問題