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

时间:2014-10-27 21:03:06

标签: javascript node.js object express javascript-objects

我在express和node中创建了一个Json api。我已经完成了这项工作,但我无法弄清楚如何在此表达式中输出密钥名称。这是我到目前为止所拥有的......

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

1 个答案:

答案 0 :(得分:3)

对于动态变量键名,您应该使用括号表示法。否则,键名称将按字面解释为k。试试这个:

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