如何区分 属性 和一起传入函数的值

How to differentiate between property and value passed in a function together

我需要检查数组中的对象是否包含 属性,如果包含,属性值是否匹配。

属性和值在函数调用中一起给出:

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 如果是,则比较值。

您可以使用 Object.getOwnPropertyNames()。它 returns 一个包含 属性 个对象名称的数组。

console.log(Object.getOwnPropertyNames(source));
// ['last']