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

时间:2016-02-06 17:30:59

标签: javascript angularjs

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

编辑:对象B将是动态的,可能只包含Make或Only Model。通过复选框过滤器动态添加更多键。

使用像Underscore这样的库更容易吗?如果是的话,哪些功能适用?

我希望这有道理吗?

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

        var b = {
            Make: "Apple",
            Model: "iPad"
        }

2 个答案:

答案 0 :(得分:2)

只需迭代所有键并检查值是否相等。



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);




答案 1 :(得分:1)

没有内置的方法,但您可以使用自己的实现(请参阅Nina Scholz的回答)或Lodash的_.isMatch函数(或Underscore’s _.isMatch):

_.isMatch(a, b)