Reactjs 如何组合数组

Reactjs 如何组合数组,reactjs,api,react-hooks,Reactjs,Api,React Hooks,我获取两个API调用 "people": [ { "id": 1, "person": "A", "departmentId": 1, }, { "id": 2, "person": "B", "departmentId":

我获取两个API调用

"people": [
    {
      "id": 1,
      "person": "A",
      "departmentId": 1,
    },
    {
      "id": 2,
      "person": "B",
      "departmentId": 2,
    }]    ```

    and second is with departments 

    ```  
    "departments": [
    {
      "id": 1,
      "departmentName": "services"
    },
    {
      "id": 2,
      "departmentName": "services2"
    }]
我使用.map功能显示人员列表,我希望显示的部门不是数字,而是部门名称。我用钩子,
感谢您的帮助

您正在寻找和数组方法的组合:

人=[
{
“id”:1,
“人”:“A”,
“部门ID”:1,
},
{
“id”:2,
“人”:“B”,
“部门ID”:2,
}];
部门=[
{
“id”:1,
“部门名称”:“服务”
},
{
“id”:2,
“部门名称”:“服务2”
}];
const getDepartmentName=(id)=>departments.find(dep=>dep.id==id);
constpeoplewithdepartments=people.map(p=>({…p,departmentName:getDepartmentName(p.departmentId)}));

console.log(有部门的人员)我建议您在api端执行此操作,否则这是一个完成此工作的小脚本

people.map(person => {
    return `${person.person} works at ${departments.find(department => department.id == person.departmentId)?.departmentName}`
})

您可以在收到后立即创建部门字典/地图,例如,
部门:{1:'Dept 1',2:'Some other Dept'}
。可能我的问题不清楚:/我将如何组合这两个结果以获得部门名称而不是编号?因此,如果departmentId为2,它将通过创建一个映射来显示服务2,正如我上面解释的,您可以这样做:
{people.map(p=>{p.person},{departmentMap[p.departmentId]})}
因此,时间复杂性将降低。