对象搜索仅适用于第一次

时间:2016-10-31 02:35:24

标签: javascript object

我创建了一个名为" 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

我似乎无法找到这里缺少的东西。感谢任何帮助。谢谢。

1 个答案:

答案 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;
}

希望这有帮助