Как различать свойство и значение, переданное в функцию вместе

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

Свойство и значение передаются вместе при вызове функции:

whatIsInAName(
    [
        { first: "Romeo", last: "Montague" }, 
        { first: "Mercutio", last: null }, 
        { first: "Tybalt", last: "Capulet" }
    ], 
    { last: "Capulet" }); //Property: last, value: Capulet.

Определение функции:

function whatIsInAName(collection, source) {

Я так и не смог отделить свойство от значения (они оба находятся внутри source), чтобы я мог сначала проверить, существует ли свойство с hasOwnProperty, и если да, то сравнить значения.


person tamir    schedule 13.01.2017    source источник
comment
В вашем реальном коде имя свойства в source (last) вам неизвестно?   -  person Teemu    schedule 14.01.2017
comment
Вы можете получить все свойства любого объекта, используя Object.keys(), как указано в этом вопросе...   -  person Heretic Monkey    schedule 14.01.2017
comment
Используйте цикл for-in.   -  person    schedule 14.01.2017
comment
@Teemu: Да, неизвестно. Это проблема. Я знаю, как проверить, имеет ли один из объектов массива определенное имя свойства или нет. Но я не знаю, как отделить last от Capulet в source   -  person tamir    schedule 14.01.2017


Ответы (1)