在for循环中使用带有if语句的console.log时,在控制台中没有显示任何内容

时间:2016-01-20 09:25:46

标签: javascript

我有两个对象:

var obj = { first: "Romeo", last: "Montague" };
var search = { last: "Montague" };

我的目标是查找第一个对象(search)是否存在于第一个对象中,console.log是否存在。

首先,我得到两个对象的键:

var objKeys = Object.keys(obj);
var searchKeys = Object.keys(search);

然后我试图通过两个键进行迭代并比较它们,如果它们匹配,则console.log来自第一个obj(obj)的值。

//for every key in object
for(var x = 0; x < objKeys.lenght; x++) {
  //for every key in search
  for(var y = 0; y < searchKeys.length; y++) {
    //see if a key matches
    if(searchKeys[y] == objKeys[x]) {
        //see if the value matches
        if(obj[objKeys[x]] == search[searchKeys[y]]) {
        console.log(obj[objKeys[x]]);
      }  
      else {
        console.log("value not found");
      }
    }
    else {
        console.log("key not found");
    }
  } 
}

现在,当我运行此代码时,控制台中没有任何内容显示。没有错误或消息。谁能指出我做错了什么?

如果你想修补,我已经创建了jsFiddle这段代码。

1 个答案:

答案 0 :(得分:0)

您在第一个循环中拼错了length

还可以考虑使用for-in循环:

for (property in obj) {
   if (obj.hasOwnProperty(property)) {
       //...
   }
}