2014-10-27 131 views
1

我在express和node中創建Json API。我有這個幾乎工作,但我不知道如何輸出在這個表達式中的鍵名稱。以下是我迄今爲止...如何在javascript中迭代對象作爲鍵值對

for (var k in req.body) { 
    if (req.body.hasOwnProperty(k)) { 

     if (k != 'formId' && k != 'firstName' && k != 'lastName' && k != 'email' && k != 'phone' && k != 'company' && k != 'subject' && k != 'message') { 
      additionalFields.push({ 
       k: req.body[k] 
      }); 
     } 

    } 
} 

console.log(additionalFields); 

,輸出是:

[{ 
    k: '$5000 - $10000' 
}, { 
    k: ['business cards', 'web design', 'graphicdesign'] 
}] 

這幾乎是對的,但我想,而不是「K」鍵的名稱。我是JavaScript的新手,在我走的時候自我教導,所以這對我來說將是一個很好的教訓。這是我想要的結果,如果有人能幫助我到達那裏,那將是巨大的......

[{ 
    priceRange: '$5000 - $10000' 
}, { 
    servicesNeeded: ['business cards', 'web design', 'graphicdesign'] 
}] 

回答

3

對於你應該使用括號標記動態變量關鍵的名字。否則,鍵名將按字面解釋爲k。試試這個:

var obj = {}; 
obj[k] = req.body[k]; 
additionalFields.push(obj); 
+0

你的(現在刪除的)評論很混亂,因爲它聽起來像你說你的答案在語法上不正確。 – Robert 2014-10-27 21:24:27

+0

謝謝@Robert。我在評論另一個OP的評論,他們在那裏假設一個更不正確的版本。 – dfsq 2014-10-27 21:26:22