const data = {
"dangerBaseInfo": {
"memberPosts": [
"测试岗位1",
"测试岗位2"
],
"memberName": "超级管理员",
"memberId": 1,
"carInfoList": [
{
"carNum": "吉A11111",
"modes": "1.1项",
"status": true,
"dangerRectSignboard": {
"a1": 1,
"type": 1,
"status": true,
"memberPosts": [],
"memberName": "",
"uploadList": [],
"metaR1": [],
"metaR2": [],
"metaR3": []
},
"dangerDiamondSignboard": {
"a1": 1,
"type": 1,
"status": true,
"memberPosts": [],
"memberName": "",
"uploadList": [],
"metaR1": [],
"metaR2": [],
"metaR3": []
}
},
{
"carNum": "吉A22222",
"modes": "2.1项高压罐式运输",
"status": true,
"dangerRectSignboard": {
"a1": 2,
"a2": 2,
"type": 3,
"status": true,
"memberPosts": [],
"memberName": "",
"uploadList": [],
"metaR1": [],
"metaR2": [],
"metaR3": []
},
"dangerDiamondSignboard": {
"a1": 1,
"type": 1,
"status": true,
"memberPosts": [],
"memberName": "",
"uploadList": [],
"metaR1": [],
"metaR2": [],
"metaR3": []
}
}
]
},
"dangerRectSignboard": {
"status": false,
"type": 0,
"memberPosts": [],
"memberName": "",
"uploadList": [],
"metaR1": [],
"metaR2": [],
"metaR3": []
},
"dangerDiamondSignboard": {
"status": false,
"type": 0,
"memberPosts": [],
"memberName": "",
"uploadList": [],
"metaR1": [],
"metaR2": [],
"metaR3": []
}
}
function processData(data: any, itemName: string) {
const baseInfo = data.dangerBaseInfo;
const cars = baseInfo.carInfoList;
for (const car of cars) {
if (car.status) {
const carNum = car.carNum;
const carSign = car[itemName];
const outerSign = data[itemName];
const type = carSign.type;
const metaKey = `metaR${type}`;
if (!outerSign[metaKey]) {
outerSign[metaKey] = [];
}
outerSign.memberPosts = baseInfo.memberPosts
outerSign.memberName = baseInfo.memberName
outerSign.memberId = baseInfo.memberId
outerSign.status = true
outerSign[metaKey].push(carNum);
}
}
}
processData(data, 'dangerRectSignboard')
console.log(data)