如何在TypeScript中将对象合并到已有对象并以竖线拼接flag值?
TypeScript 对象合并与 Flag 拼接实现方案
你可以通过两种方式实现需求:创建新对象(不修改原对象)或直接修改原对象,以下是具体实现:
方式一:创建新对象(推荐,保持原对象不可变)
使用对象扩展运算符合并属性,单独处理 flag 的拼接:
const consolidatedObj = { "flag": "Data Concept", "UpdateDC": { "id": 732, "oId": 695112, "cType": "DCON", "clientId": 1, "aId": 236, "fType": "DAT_OWN", "details_1": {}, "details_2": {} } }; const anotherPayload = { flag: 'LOB', UpdateLOB: { assessmentId: +this.assessmentId, lobId: +this.lob['id'], } }; // 合并并拼接flag const mergedObj = { ...consolidatedObj, ...anotherPayload, flag: `${consolidatedObj.flag} | ${anotherPayload.flag}` };
方式二:直接修改原对象
如果允许修改原 consolidatedObj,可以用 Object.assign 合并属性后更新 flag:
// 合并anotherPayload到原对象 Object.assign(consolidatedObj, anotherPayload); // 拼接flag(添加替换逻辑避免重复拼接) consolidatedObj.flag = `${consolidatedObj.flag.replace(` | ${anotherPayload.flag}`, '')} | ${anotherPayload.flag}`;
边界情况处理(可选)
如果存在某个对象的 flag 为空、undefined 或 null 的情况,可以过滤空值后再拼接:
const mergedFlag = [consolidatedObj.flag, anotherPayload.flag] .filter(Boolean) // 过滤空值 .join(' | '); const mergedObj = { ...consolidatedObj, ...anotherPayload, flag: mergedFlag };
内容的提问来源于stack exchange,提问作者Mitul Panchal
相关产品推荐
相关产品推荐

