2013-06-25 17 views
0

我希望在javascript中有一個函數(如果可能的話),它將允許我將一個ID數組傳遞給函數,並檢查每個值是否爲在另一個數組中發現返回TRUE。如何使用javascript/jQuery檢查數組中的所有項匹配

e.g

var ids1 = [1, 6, 9, 11, 20]; 
var ids2 = [5, 6, 9, 11]; 

function check_array(ids) 
{ 
    var search = [1, 6, 9, 11, 20]; 
    // do some checking here 

    // if all ids are matched up return TRUE; 

    // otherwise return FALSE; 
} 

在這種情況下 - 第一VAR IDS1會返回TRUE,而第二個變種IDS2將返回FALSE。

任何人都可以提出最簡單/最乾淨的方法嗎?

+3

你有沒有嘗試過自己? –

+0

我沒有嘗試自己純粹的,因爲我認爲他們可能是一個JavaScript函數,已經這樣做,我不知道例如array_diff()在PHP會讓我這樣做,我想知道如果JavaScript有一個類似的功能 – Zabs

回答

2
function check_array(ids1, ids2) { 
    return $(ids1).not(ids2).get().length === 0; 
} 

var ids1 = [1, 6, 9, 11, 20]; 
var ids2 = [5, 6, 9, 11]; 
console.log(check_array(ids1, ids2)); // false 
console.log(check_array(ids2, ids1)); // false 
var search = [1, 6, 9, 11, 20]; 
console.log(check_array(search, ids2)); // false 
console.log(check_array(search, ids1)); // true 

雖然上面的通用版本足夠了,這就是你正在問什麼:

function check_array(ids) { 
    var search = [1, 6, 9, 11, 20]; 
    return $(search).not(ids).get().length === 0; 
} 
var ids1 = [1, 6, 9, 11, 20]; 
var ids2 = [5, 6, 9, 11]; 
console.log(check_array(ids1)); // true 
console.log(check_array(ids2)); // false 
+0

看起來不錯的傢伙:-) – Zabs

1

如果您只有數字ID,那麼這可能是最簡單的方法。

[1,2,3].toString() === [1,2,3].toString() //=> true

如果要確定是否在B陣列存在於數組A的所有ID(但B陣列可能有其他人),試着[].every

+0

arg讓我去它...請在添加排序之前比較:) – Salketer

+0

偉大的東西,他們應該工作:) – Zabs

+0

什麼如果搜索數組比ID更有價值? Op想要返回真或假? –

相關問題