【发布时间】:2021-02-05 17:18:27
【问题描述】:
我有 3 个 JSON 数组,如下所示。这 3 个数组具有 1、2 和 3 类型的错误详细信息
const data1 =
[
{
"ErrorType": "Error-1A",
"Error": "wrong ip address for 1A",
"SERVER_COUNT": 9
},
{
"ErrorType": "Error-1B",
"Error": "password incorrect for 1B",
"SERVER_COUNT": 9
},
];
const data2 =
[
{
"ErrorType": "Error-2A",
"Error": "wrong data for 2A",
"SERVER_COUNT": 8
},
{
"ErrorType": "Error-2B",
"Error": "password incorrect for 2B",
"SERVER_COUNT": 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"
},
"9": {
"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"
}
}
}
请注意Error-1A 和Error-1B 的计数相同。任何两种错误类型都可以具有相同的计数。
我正在使用以下函数循环数组元素,使用SERVER_COUNT 属性作为键将它们中的每一个转换为对象属性。
let finalData = {
details1: dataToDetails(data1),
details2: dataToDetails(data2),
details3: dataToDetails(data3)
};
function dataToDetails (data) {
let result = {};
data.forEach(({ErrorType, Error, SERVER_COUNT}) => result[SERVER_COUNT] = {ErrorType, Error});
return result;
}
但是,它没有同时显示Error-1A 和Error-1B
如何修改上述函数,使SERVER_COUNT值相同的对象分组?
【问题讨论】:
标签: javascript node.js json collections hashmap