如何根据language_id动态生成对象key并将对应值设置为空字符串
实现方案
- 先拆分字段为三类:无语言关联的固定字段、带语言ID后缀的动态字段、固定结构的嵌套字段
upload_image - 提前定义需要拼接语言ID的字段前缀数组,通过遍历拼接传入的language_id生成对应动态键,值统一设为空字符串
- 合并所有字段后传入
reset方法即可,后续新增语言关联字段只需修改前缀数组,维护成本低
单语言场景代码示例
// 入参为你实际业务中的动态language_id function generateResetParams(languageId) { // 无需拼接语言ID的固定字段配置 const fixedParams = { delivery: '', dine_in: '', hidden: '', hide_category_tile_details: '', internal_name: '', size: '', takeaway: '', upload_image: { id: '', src: '', image_url: '', result: null } }; // 带语言ID后缀的字段前缀列表 const langRelatedPrefix = ['title', 'serves', 'description']; // 动态生成语言关联字段 const langParams = langRelatedPrefix.reduce((result, prefix) => { result[`${prefix}${languageId}`] = ''; return result; }, {}); // 合并后返回完整的reset入参 return { ...fixedParams, ...langParams }; } // 调用示例,比如当前language_id为3 reset(generateResetParams(3));
多语言场景扩展
如果需要同时生成多个语言对应的字段,只需额外遍历支持的语言ID列表即可:
const supportLangIds = [1,2,3]; // 你实际支持的语言ID列表 const langParams = {}; supportLangIds.forEach(langId => { langRelatedPrefix.forEach(prefix => { langParams[`${prefix}${langId}`] = ''; }); });
内容的提问来源于stack exchange,提问作者Chandler Bing
相关产品推荐
相关产品推荐

