如何合并列表中对象的三个不同字符串字段并映射为value、label结构
按位置合并三个逗号分隔字符串的实现方案
实现逻辑
- 先将三个string格式的属性按逗号切割为等长数组,切割前可增加空值校验逻辑避免运行报错
- 按索引遍历数组,逐位提取权限ID、权限名称、权限类型三个值,组装为要求的
value和label结构 - 最终返回组装好的结果数组
代码示例(JavaScript)
const originData = { permissionIDList: "1,2,3", permissionNameList: "Admin Role,Admin Role,Bulletin Board", permissionTypeList: "view,edit,view" } // 拆分字符串为数组 const idList = originData.permissionIDList.split(',') const nameList = originData.permissionNameList.split(',') const typeList = originData.permissionTypeList.split(',') // 数组长度一致性校验(可选) if (idList.length !== nameList.length || idList.length !== typeList.length) { throw new Error('三个属性的列表长度不一致') } // 生成目标结构 const res = idList.map((id, idx) => ({ value: Number(id), label: `${nameList[idx]} - ${typeList[idx]}` }))
输出结果
执行上述代码后得到的res就是所需格式:
[ { value: 1, label: 'Admin Role - view' }, { value: 2, label: 'Admin Role - edit' }, { value: 3, label: 'Bulletin Board - view' } ]
内容的提问来源于stack exchange,提问作者Lance
相关产品推荐
相关产品推荐

