基于键/值对的对象的文件管理器数组

时间:2018-07-09 02:04:37

标签: javascript filter hasownproperty

我正在创建一个函数,该函数接受第一个参数,即对象数组,并将其与第二个参数(一个对象)进行比较,以查看键/值对是否匹配。该函数将返回包含匹配键/值对的对象。我在按键上同时使用filterhasOwnProperty进行比较,例如:

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以及我的逻辑哪里出问题了。谢谢。

1 个答案:

答案 0 :(得分:1)

相反,遍历entries中每个el的{​​{1}},这样您就可以一次针对每个键和相关值进行测试。 collection检查是完全多余的:

hasOwnProperty