如果我有以下两个对象(对象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"
}
答案 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)