1.需要处理成的数据格式
[{
mpptNumber: 1,
list:[
{
checked: false,
pvEnableStatus: 0,
pvSerialNumber: 1,
},
{
checked: false,
pvEnableStatus: 0,
pvSerialNumber: 2,
}]
},
{
mpptNumber: 2,
list:[
{
checked: false,
pvEnableStatus: 0,
pvSerialNumber: 1,
},
{
checked: false,
pvEnableStatus: 0,
pvSerialNumber: 3,
}]
}]
2.原始数据
"pvConfigList": [
{
"mpptNumber": 1,
"pvSerialNumber": 1,
"pvEnableStatus": 0,
"pvEnableStatusStr": "0.00"
},
{
"mpptNumber": 1,
"pvSerialNumber": 2,
"pvEnableStatus": 0,
"pvEnableStatusStr": "0.00"
},
{
"mpptNumber": 2,
"pvSerialNumber": 1,
"pvEnableStatus": 0,
"pvEnableStatusStr": "0.00"
},
{
"mpptNumber": 2,
"pvSerialNumber": 3,
"pvEnableStatus": 0,
"pvEnableStatusStr": "0.00"
}
],
3.封装方法
// 格式化光伏数据
const formatePvcData = (pvConfigList) => {
// 创建一个空数组来存储处理后的对象
const resultArray = [];
// 遍历原始数组
pvConfigList.forEach((item) => {
// 检查是否已经有对应的mpptNumber在resultArray中
const existingObj = resultArray.find(
(obj) => obj.mpptNumber === item.mpptNumber
);
if (existingObj) {
// 如果存在,则向该对象的list中添加一个新的pv配置
existingObj.list.push({
pvSerialNumber: item.pvSerialNumber,
pvEnableStatus: item.pvEnableStatus, // 注意这里使用字符串,因为原数据是字符串
checked: item.pvEnableStatus == 0 ? false : true,
});
} else {
// 如果不存在,则创建一个新的对象并添加到resultArray中
resultArray.push({
mpptNumber: item.mpptNumber,
list: [
{
pvSerialNumber: item.pvSerialNumber,
pvEnableStatus: item.pvEnableStatus, // 注意这里使用字符串,因为原数据是字符串
checked: item.pvEnableStatus == 0 ? false : true,
},
],
});
}
});
// 返回处理后的数组
return resultArray;
};
4.展示效果