【问题标题】:How to modify JSON key name within an array in NodeJs如何在 NodeJs 中修改数组中的 JSON 键名
【发布时间】:2020-04-27 04:00:56
【问题描述】:

我在 NodeJS 中有一个函数,它返回一个 JSON 元素数组

let rows = function1();

这里rows看起来像:

"rows": [
    {
    "Hostname": "abc123",
    "name": "name1",
    "Status": "PASS",
    "Heading": "Not Applicable"
    },
    {
    "Hostname": "abc123",
    "name": "name2",
    "Status": "FAIL",
    "Heading": "Not Applicable"
    }
]

这里,rows 可以有任意数量的 Json 元素:

"rows": [
    {
    "Hostname": "abc123",
    "name": "name1",
    "Status": "PASS",
    "Heading": "Not Applicable"
    },
    {
    "Hostname": "abc123",
    "name": "name2",
    "Status": "FAIL",
    "Heading": "Not Applicable"
    },
    {
    "Hostname": "abc123",
    "name": "name3",
    "Status": "FAIL",
    "Heading": "Not Applicable"
    },
 ...
]

在所有 JSON 元素中,Hostname 将保留名称,

我想修改rows array 使其如下所示:

"rows": [
    {
    "Hostname": "abc123",
    "name1Status": "PASS",
    "name1Heading": "Not Applicable"
    "name2Status": "FAIL",
    "name2Heading": "Not Applicable"
    "name3Status": "FAIL",
    "name3Heading": "Not Applicable"
     ...
]

【问题讨论】:

    标签: javascript arrays node.js dom-events node-modules


    【解决方案1】:

    如果你理解正确,那么你需要达到这个结果。 为此使用reduce,非常方便处理数组

    const rows = [
        {
        "Hostname": "abc123",
        "name": "name1",
        "Status": "PASS",
        "Heading": "Not Applicable"
        },
        {
        "Hostname": "abc123",
        "name": "name2",
        "Status": "FAIL",
        "Heading": "Not Applicable"
        }
    ]
    const res = rows.reduce((acc, rec) => {
    	let result = { ...acc, [`Hostname`]: rec.Hostname,  [`${rec.name}Status`]: rec.Status, [`${rec.name}Heading`]: rec.Heading  }
    	return result
    }, [])
    console.log(res)

    【讨论】:

    • 这里,输出没有显示"Hostname": "abc123"。相反,它显示"abc123": "abc123"
    • 是的,对不起。立即尝试
    猜你喜欢
    • 2021-02-05
    • 1970-01-01
    • 1970-01-01
    • 2021-12-02
    • 1970-01-01
    • 2019-02-24
    • 1970-01-01
    • 2021-08-18
    • 1970-01-01
    相关资源
    最近更新 更多