JavaScript的唯一密钥值

问题描述:

我需要找出,有没有在对象的阵列的某些关键对象:值 例如,如果我需要的关键的“id”是唯一的:JavaScript的唯一密钥值

arr=[ 
    {id:1, attr1:'435',attr2:'sdg'}, 
    {id:2, attr3:'4x35',attr2:'sdg'} 
    ]; 

a={id:1,attr2:'nnsklnf'}; 
b={id:3,attr3:'kldfmlkdblng'}; 

function isHaveSimilar(_a,_array){ 
// ... ??? 
} 

isHaveSimilar(a,arr); // true 
isHaveSimilar(b,arr); // false 

也许有比简单的检查每个元素更简单的方法? Thx)

+1

不,我相信“无礼检查”就是这样。 – lanzz

function hasSimilar(needle, haystack) { 
    for (item in haystack) { 
    if (haystack[item].id == needle.id) { 
     return true; 
    } 
    } 
    return false; 
} 

hasSimilar(a, arr); // true 
hasSimilar(b, arr); // false 
+0

谢谢。我也没有看到另一种方式。想想也许有些东西可以用jQuery在一行中解决它,或者在JSON中使用一些函数,但它可能没用,但只是好奇:] – 2oppin