代码之家  ›  专栏  ›  技术社区  ›  MontyGoldy

反应/还原如何过滤两个数组值

  •  0
  • MontyGoldy  · 技术社区  · 7 年前

    我使用react reseselect过滤掉一些数据。 我必须检查不同的数据数组是否匹配。我怎样才能用两个不同的数组做一个过滤器,并且必须对它们运行map函数

    这是我的选择器

    export const AssignedUserSelector = createSelector(
      [EmployeeSelector],
      employee => {
        const freshData = newData.map(newlyAssign => newlyAssign);
       
        return employee.employees.filter(assign => assign.employeeId === newData);
      }
    );

    这里的freshdata类似于此[“2222”、“333”、“4444”]和employee。employees类似于此[id:“222”,name:“john”,id:“333”,name:“jane”,id:“5555”,name:“josh”]。

    我要做的是根据收到的ID过滤掉员工。我怎样才能做到这一点。

    1 回复  |  直到 7 年前
        1
  •  0
  •   dysfunc    7 年前

    不完全确定您对示例代码的操作,但这可能是您要查找的内容:

    多个ID

    const employeeIds = ["2222", "333", "4444"];
    
    const employee = {
      employees: [{ 
        id: "222", 
        name: "John"
      },{
        id: "333", 
        name: "Jane"
      },{
        id: "5555", 
        name: "Josh"
      }]
    };
    
    employee.employees.filter(({ id }) => !employeeIds.includes(id));
    

    单一ID

    const employeeId = "222";
    
    const employee = {
      employees: [{ 
        id: "222", 
        name: "John"
      },{
        id: "333", 
        name: "Jane"
      },{
        id: "5555", 
        name: "Josh"
      }]
    };
    
    employee.employees.filter(({ id }) => id !== employeeId);