如何在javascript中迭代对象作为键值对

我正在快速和节点创build一个Json API。 我有这个几乎工作,但我不知道如何输出在这个expression式键名。 这是我到目前为止…

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'] }] 

对于dynamicvariables键名,您应该使用括号表示法。 否则键名字被解释为k 。 尝试这个:

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