Javascript 是否可以仅在两个对象共享的键/属性之间比较两个对象?
我有两个目标Javascript 是否可以仅在两个对象共享的键/属性之间比较两个对象?,javascript,json,chai,Javascript,Json,Chai,我有两个目标 address: { id: 1234, city: "foo", country: "bar", name: "baz" } 及 如果我尝试在它们之间进行直接比较/断言,即 expect(address).to.contain(defaultAddress) (或者反过来说),它将失败,因为每个字段都包含另一个不包含的字段 (AssertionError:expect{address}应该有一个属性“firstName”) 我只想比较它们共享的键中的值。是否可
address: {
id: 1234,
city: "foo",
country: "bar",
name: "baz"
}
及
如果我尝试在它们之间进行直接比较/断言,即
expect(address).to.contain(defaultAddress)
(或者反过来说),它将失败,因为每个字段都包含另一个不包含的字段
(AssertionError:expect{address}应该有一个属性“firstName”)
我只想比较它们共享的键中的值。是否可以通过编程方式执行类似操作?您正在尝试匹配共享键子集上的对象。这可以按如下方式进行
for(const key in address) {
if(typeof defaultAddress[key] !== 'undefined') {
expect(address[key]).to.equal(defaultAddress[key])
}
}
还可以看看这个。为什么不使用
.to.include.any.keys作为
expect(defaultAddress).to.include.any.keys(...Object.keys(address));
虽然没有测试哦,我应该阅读chai文档,我不知道你能做到:/
expect(defaultAddress).to.include.any.keys(...Object.keys(address));