首页 > 解决方案 > 如何合并列表中 3 个不同对象的字符串?

问题描述

我想要做的是根据两个列表中的顺序合并 3 个字符串。

例如,在一个数组中,我有这 3 个项目,它们的数据为字符串形式:

1: {
    permissionIDList: "1,2,3"
    permissionNameList: "Admin Role,Admin Role,Bulletin Board"
    permissionTypeList: "view,edit,view"
}

我想合并列表并将其映射到值和标签中,以便它将变为:

0: {value: 1, label: Admin Role - view}
1: {value: 2, label: Admin Role - edit}
2: {value: 3, label: Bulletin Board - view}

标签: javascript

解决方案


Array.reduce执行

const data = {
    permissionIDList: "1,2,3",
    permissionNameList: "Admin Role,Admin Role,Bulletin Board",
    permissionTypeList: "view,edit,view",
};
const [permissionIDList, permissionNameList, permissionTypeList] = [data.permissionIDList.split(','), data.permissionNameList.split(','), data.permissionTypeList.split(',')];
const merger = permissionIDList.reduce((acc, curr, index) => {
  acc[curr] = {
    value: curr,
    label: `${permissionNameList[index]} - ${permissionTypeList[index]}`
  }
  return acc;
}, {});
console.log(merger);

如果您的最终数据响应是一个数组,您可以使用Array.map

const data = {
    permissionIDList: "1,2,3",
    permissionNameList: "Admin Role,Admin Role,Bulletin Board",
    permissionTypeList: "view,edit,view",
};
const [permissionIDList, permissionNameList, permissionTypeList] = [data.permissionIDList.split(','), data.permissionNameList.split(','), data.permissionTypeList.split(',')]
const merger = permissionIDList.map((node, index) => ({
  value: node,
  label: `${permissionNameList[index]} - ${permissionTypeList[index]}`
}));
console.log(merger);


推荐阅读