2015-12-08 46 views
-1

我使用express.js和cookie分析器中間件。我正在嘗試使用函數將cookie名稱和cookie值推入數組中。將定義的變量推入javascript對象

我想數組最後看起來像下面這樣:

loop = [{cookie1: value1}, {cookie2: value2}]; 

但由於某些原因,當我按下鍵和值到數組,關鍵是剛剛被指定爲一個字符串名爲關鍵而不是函數中設置的實際值。所以,我的數組最終看起來像下面這樣:

loop = [{key: value1}, {key: value2}]; 

我定義的函數內部變量「鑰匙」,如果我控制檯日誌它設置爲正確的值(即COOKIE1)在函數內部,但出於某種原因,當我嘗試將它推入數組時,它只是推入'key'而不是實際變量。

下面是完整的功能,任何想法將不勝感激。謝謝。

var loop = []; 
cookie_objects(req.cookies); 

function cookie_objects(cookies) { 
    for (var cookie in cookies) { 
     if (cookie != 'seen_cookie_message' && cookie != '_ga') { 
      var key = cookie; 
      var value = cookies[cookie]; 

      loop.push({key : value}); 
     } 
    } 
} 
+1

的可能的複製[使用一個變量在JavaScript的關鍵對象常量](HTTP:/ /stackoverflow.com/questions/2274242/using-a-variable-for-a-key-in-a-javascript-object-literal) – CBroe

回答

2

你必須預先創建空白對象 - 然後分配通過括號記號的鍵:

var obj = {}; 
obj[key] = value; 
loop.push(obj); 
+0

令人驚歎!在一分鐘內完全解決哈哈...非常感謝!只要它讓我接受這個答案,我會這樣做。 – abbott567