检查另一个对象中是否存在键/值对

Check if key / value pair exist within another object

本文关键字:值对 存在 是否 一个对象 检查      更新时间:2023-09-26

如果我有以下两个对象(对象A和对象B),如何检查对象B的键/值是否存在于对象A?在下面的示例中,它应该返回 True,因为对象 A 中同时存在"make:"Apple"和"Model:"iPad"。

编辑:对象B将是动态的,可能仅包含Make或仅包含模型。更多键通过复选框筛选器动态添加。

使用下划线等库是否更容易?如果是这样,哪些功能将适用?

我希望这是有道理的?

        var a = {
            Make: "Apple",
            Model: "iPad",
            hasScreen: "yes",
            Review: "Great product!",
        }
        var b = {
            Make: "Apple",
            Model: "iPad"
        }

只需遍历所有键并检查值是否相等。

var a = { Make: "Apple", Model: "iPad", hasScreen: "yes", Review: "Great product!" },
    b = { Make: "Apple", Model: "iPad" },
    every = Object.keys(b).every(function (k) {
        return a[k] === b[k];
    });
document.write(every);

没有内置的方法可以做到这一点,但你可以使用自己的实现(参见Nina Scholz的答案)或Lodash的_.isMatch函数(或Underscore的_.isMatch):

_.isMatch(a, b)