2012-05-30 3 views
-1

мне нужно выяснить, есть ли в массиве объектов объект с определенным ключом: значение Например, если мне нужно ключом «идентификатор» должен быть уникальными: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

ответ

0
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

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