Javascript 如何在不使用方法的情况下检查对象是否包含对象?
我试图检查一个对象是否包含另一个具有部分匹配样式的对象 因此,下面的示例应该在Javascript 如何在不使用方法的情况下检查对象是否包含对象?,javascript,Javascript,我试图检查一个对象是否包含另一个具有部分匹配样式的对象 因此,下面的示例应该在myArray中找到对象{'a':{'b':'c'}两次。请注意,即使myArray[0]对象在{'a':{'b':'c'}上有一个附加属性{e':'f',它仍然应该被认为包含{'a':{'b':'c'} 我希望避免使用任何方法,例如reduce或map const myArray=[ { “a”:{ ‘b’:‘c’, ‘e’:‘f’, } }, { “a”:{ “b”:“c” } }, { “d”:{ “e”:“f
myArray
中找到对象{'a':{'b':'c'}
两次。请注意,即使myArray[0]
对象在{'a':{'b':'c'}
上有一个附加属性{e':'f'
,它仍然应该被认为包含{'a':{'b':'c'}
我希望避免使用任何方法,例如reduce或map
const myArray=[
{
“a”:{
‘b’:‘c’,
‘e’:‘f’,
}
},
{
“a”:{
“b”:“c”
}
},
{
“d”:{
“e”:“f”
}
},
]
函数包含(数组、索引、对象){
如果(){//实现???
返回真值
}
否则{
返回错误
}
}
对象数组(对象,数组)的函数数量{
var计数=0;
对于(变量i=0;i console.log(quantity)//expect:2
您可以使用Object.entries
递归比较对象:
function has(obj, proto) {
for(const [key, value] of Object.entries(proto)) {
if(typeof value === "object") {
if(!obj[key] || !has(obj[key], value))
return false;
} else if(obj[key] !== value) {
return false;
}
}
return true;
}
可能的重复是关于一个对象是否部分包含另一个对象,而不是它们是否相等。如果没有其他方法,我将需要它,但我正在尝试不使用这样的方法,所以我可以看到在使用类似快捷方式的方法之前,如何首先以艰难的方式完成它