我正在尝试创建一个递归函数,它将遍历多维对象并测试密钥是否存在于单独的对象中。如果键不存在我想打破循环并返回false,如果所有键都存在我想返回true。
我遇到的问题是该函数似乎总是返回 true。这是我正在使用的代码:
var properties = {'global': {'structure' : {'body': {}}}};
var testExists = {'global': {'structure': {'test': 'value'}}};
if( ! this.exists(properties, testExists)) {
console.log("DOESNT EXIST");
}
exists: function(destination, source) {
var exists = true;
check:
for (var property in source) {
if(destination[property]) {
arguments.callee(destination[property], source[property]);
}
else
{
exists = false;
break check;
}
}
console.log(exists);
return exists;
},
当我查看控制台以查看“存在”的值时,我看到两行第一行是假的,第二行是真的,所以我正在创建的递归一定有错误