【发布时间】:2021-02-05 02:32:30
【问题描述】:
我有一个返回以下 JSON 数组的 NodeJS 函数。它包含1 类型的所有错误:
const data1 =
[
{
"ErrorType": "Error-1A",
"Error": "wrong ip address for 1A",
"SERVER_COUNT": 9
},
{
"ErrorType": "Error-1B",
"Error": "password incorrect for 1B",
"SERVER_COUNT": 2
},
....
]
我有另一个 JSON 数组来存储 2 类型的所有错误:
const data2 =
[
{
"ErrorType": "Error-2A",
"Error": "wrong data for 2A",
"SERVER_COUNT": 8
},
{
"ErrorType": "Error-2B",
"Error": "password incorrect for 2B",
"SERVER_COUNT": 3
},
....
]
我有另一个 JSON 数组用于所有 3 类型的错误:
const data3 =
[
{
"ErrorType": "Error-3A",
"Error": "wrong data for 3A",
"SERVER_COUNT": 1
},
{
"ErrorType": "Error-3B",
"Error": "password incorrect for 3C",
"SERVER_COUNT": 5
},
....
]
我想组合 3 个 JSON 数组 data1、data2、data3,最终的 JSON 对象应如下所示:
{
"details1": {
"9": {
"ErrorType": "Error-1A",
"Error": "wrong ip address for 1A"
},
"2": {
"ErrorType": "Error-1B",
"Error": "password incorrect for 1B"
}
},
"details2": {
"8": {
"ErrorType": "Error-2A",
"Error": "wrong ip address for 2A"
},
"3": {
"ErrorType": "Error-2B",
"Error": "password incorrect for 2B"
}
},
"details3": {
"1": {
"ErrorType": "Error-3A",
"Error": "wrong ip address for 3A"
},
"5": {
"ErrorType": "Error-3B",
"Error": "password incorrect for 3B"
}
}
}
请注意,我想在最终回复中添加 3 个新键 - details1、details2 和 details3。
我也想取出SERVER_COUNT的值,做成key。
我已经添加了以下代码,但不确定是否更新它以获得最终所需的 json
let finalData = Object.assign({}, ...data1.map(({
SERVER_COUNT,
...rest
}) => ({
[SERVER_COUNT]: rest
})));
注意:只有 3 个主键,它们是硬编码的 details1、details2、details13
【问题讨论】:
-
预期输出无效
-
另外,这不是 JSON,这些是包含对象的数组。
-
想要的结果应该是一个对象,而不是一个数组。
-
不,你没有。当它应该是
{}时,它周围仍然有[] -
对不起。现已添加。
标签: javascript node.js json collections hashmap