2013-10-25 53 views
3

我檢查,看是否有鍵從另一個對象的對象存在,所以我做這樣的事情:檢查使用「在」返回undefined關鍵

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

然後我檢查,查看它是否存在內這樣的:

var cookies = { 
    'email':'[email protected]' 
} 

我檢查是這樣的:

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

但無論我做什麼,它會返回undefin編輯。然而,當我這樣做時它確實工作:

user['email']; 

這是正確的。

編輯:讓我加上到我正在做什麼。

所以我使用這個功能讓瀏覽器所有的餅乾:

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

從我得到的對象餅乾。

+2

作品:http://jsfiddle.net/unXsN/ – tymeJV

+1

@tymeJV你應該張貼作爲答案,並得到一些點;) – Polaris878

+0

@tymeJV我更新了問題抱歉。 – Robert

回答

2

有一個cookie字符串的空間,所以你需要先修剪名字,或者只是空格分開:這裏

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

驚人!就是這樣:O – Robert