我创建了一个名为" Jarz"的对象。然后在其中添加了一个名为“cat'”的对象。然后我创建了一个函数,在Jarz对象中搜索一个名为“cat'”的对象,它可以工作。然而,对于“猫”之后的每个物体。我加入了#Jarz'该功能将无法在搜索中找到它。只有第一次运行才有效。这是代码:
var Jarz = {};
Jarz['cat'] = {};
这是功能:
function doesObjExist(ObjName){
var tmpArr = Object.keys(Jarz);
for(var i = 0; i < tmpArr.length; i++){
if(tmpArr[i] === ObjName){
return true;
}
else {
return false;
}
}
}
当我在第一个物体上运行它时,猫咪会在第一个物体上运行它。它返回true。但是之后我做的任何obj都会返回false。即:
Jarz['hat'] = {};
doesObjExist('hat') // returns false
我似乎无法找到这里缺少的东西。感谢任何帮助。谢谢。
答案 0 :(得分:-1)
因为当你用帽子调用它时,它首先检查cat,因为从循环返回它是错误的所以它不会再执行以检查帽子
将此更改为
var Jarz = {};
Jarz['cat'] = {};
console.log(doesObjExist('cat'));
Jarz['hat'] = {};
console.log(doesObjExist('hat'));
function doesObjExist(ObjName) {
var tmpArr = Object.keys(Jarz);
var count = 0;
for (var i = 0; i < tmpArr.length; i++) {
if (tmpArr[i] === ObjName) {
return true;
} else {
count++;
}
}
if (count >= tmpArr.length)
return false;
}
希望这有帮助