使用“for in”的检查键返回未定义

checking key using 'for in' returns undefined

本文关键字:检查 返回 未定义 for in 使用      更新时间:2023-09-26

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

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

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

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

我像这样检查:

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

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

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 字符串中有空格,因此您需要先修剪名称,或者只是用空格拆分:

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