3

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

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

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

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

我这样检查:

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

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

user['email'];

哪个是对的。

编辑:让我补充一下我正在做的事情。

所以我使用这个函数在浏览器中获取所有的cookies:

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

从那里我得到对象cookies。

4

1 回答 1

2

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

var pairs = document.cookie.split(/\s*;\s*/);
于 2013-10-25T14:57:08.560 回答