2014-02-03 2 views
7

Я делаю простую проверку, чтобы увидеть, имеет ли этот массив точную пару ключей.Проверьте, имеет ли массив точный объект Key Value в Javascript

, например

testArray = [ 
    { "key1": "value1" }, 
    { "key2": "value2" }, 
    { "key1": "value2") 
] 

Как проверить, если массив содержит точный объект { «key1»: «значение2»}?

Спасибо за помощь.

ответ

15

В современных браузерах,

testArray.some(function(o){return o["key1"] === "value2";}) 

будет true если пара найдена, в противном случае false.

Предполагается, что каждый объект содержит только одну пару ключ/значение и что значение никогда не равно undefined.

+0

+1, мне нравится ваше редактирование. Кроме того, kudos для использования .some() :) – Alex

+0

@Alex Я бы пропустил это, если бы не ваш комментарий. :) – Matt

+0

Yikes. , , есть очень много людей, которые все еще используют IE8 и ранее. , , – talemyn

0

Вы первый хотите, чтобы проверить, если ключ существует в объекте (с помощью .hasOwnProperty()) И если что ключевые значения ссылается на «значение» значение, которое соответствует тот, который вы ищете. Код довольно прост:

var testKey = "some_key"; 
var testVal = "some_val"; 

for (i=0; i < testArray.length; i++) { 
    if ((testArray[i].hasOwnProperty(testKey)) && (testArray[i][testKey] === testVal)) { 
     // positive test logic 
     break; // so that it doesn't keep looping, after finding a match 
    } 
    else { 
     // negative test logic 
    } 
} 
Смежные вопросы