使用'for in'检查键返回undefined

时间:2013-10-25 14:30:09

标签: javascript object

我正在检查来自另一个对象的对象中是否存在某个键,所以我正在做这样的事情:

var user = {
  'email' : 'dothis',
  'derp' : 'yo'
};

然后我正在检查它是否存在于其中:

var cookies = {
  'email':'hello@gmail.com'
}

我这样检查:

for(var key in cookies) {
  if(user[key]){
   // do this
  }
}

但无论我做什么,它都会返回undefined。但是,当我这样做时它确实有效:

user['email'];

哪个是正确的。

编辑:让我继续说明我正在做的事情。

所以我使用此功能在浏览器中获取所有cookie:

getAllCookies : function(){
  var pairs = document.cookie.split(";");
  var cookies = {};
  for (var i=0; i<pairs.length; i++){
    var pair = pairs[i].split("=");
    cookies[pair[0]] = unescape(pair[1]);
  }
  return cookies;
}

从那里我得到了对象cookie。

1 个答案:

答案 0 :(得分:2)

cookie字符串中有空格,因此您需要先修剪名称,或者只是用空格分割:

var pairs = document.cookie.split(/\s*;\s*/);