【问题标题】:How to iterate through object as key value pair in javascript如何在javascript中将对象作为键值对进行迭代
【发布时间】:2014-12-23 04:14:12
【问题描述】:

我正在 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']
}]

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 您(现已删除)的评论令人困惑,因为听起来您是在说您的答案在语法上不正确。
    • 谢谢@罗伯特。我在评论另一位 OP 的评论,他们认为还有一个不正确的版本。
    猜你喜欢
    • 2021-12-20
    • 1970-01-01
    • 1970-01-01
    • 2018-04-06
    • 2020-05-27
    • 2020-12-06
    • 2022-01-19
    • 1970-01-01
    • 2021-03-06
    相关资源
    最近更新 更多