将API返回的列数组转换为指定fields格式并兼容IE浏览器
解决方案
要把API返回的字段数组转换成指定格式的fields对象,同时兼容IE浏览器,我们可以用传统的循环方式来实现(避开IE不支持的ES6+特性,比如箭头函数、Object.fromEntries这些):
// API返回的字段数组 const apiFields = ["Id", "Title", "Description", "IsActive"]; // 预先定义需要特殊指定类型的字段映射 const specialTypeMap = { Id: "number", IsActive: "number" }; // 构建目标结构 const result = { fields: {} }; // 用IE兼容的for循环遍历数组 for (let i = 0; i < apiFields.length; i++) { const fieldName = apiFields[i]; // 优先取映射表的类型,没有则默认string result.fields[fieldName] = { type: specialTypeMap[fieldName] || "string" }; } // 最终得到的就是你需要的结构 console.log(result.fields);
细节说明:
- 用
specialTypeMap来集中管理需要特殊类型的字段,后续如果API字段有新增,只要不是需要改类型的,代码不用额外调整,扩展性更好。 - 选择传统
for循环是因为它在所有IE版本里都能正常工作,不会出现兼容性问题。 - 最终生成的
fields结构完全符合要求:{ Id: { type: "number" }, Title: { type: "string" }, Description: { type: "string" }, IsActive: { type: "number" } }
内容的提问来源于stack exchange,提问作者M_M
相关产品推荐
相关产品推荐

