我正在创建一个函数,它接受第一个参数,一个对象数组,并将其与第二个参数(一个对象)进行比较,以查看键/值对是否匹配。该函数将返回包含匹配键/值对的对象。我同时使用filter
, 和hasOwnProperty
键进行比较,如下所示:
function whatIsInAName(collection, source) {
var result = collection.filter(el => {
return el == Object.keys(el).hasOwnProperty(Object.keys(source)) === true;
});
}
return result;
whatIsInAName([{ first: "Romeo", last: "Montague" }, { first: "Mercutio",
last: null }, { first: "Tybalt", last: "Capulet" }], { last: "Capulet" });
在上面的示例中,函数将返回{ first: "Tybalt", last: "Capulet" }
我正在过滤第一个参数并将键与第二个参数进行比较,试图返回两个对象的键进行比较,但是我很困惑这应该如何工作。即,如果这是解决方案所需要的,我将如何比较除了键之外的值?我确实知道还有其他方法可以得到答案,但我想掌握hasOwnProperty
我的逻辑哪里出了问题。谢谢你。