this.prepData.filter(e=>e.workflowRoleDesc!=s)[1].userList.filter(e=>e.value != filteredData.map(e=>e.userId)) this.prepData básicamente se parece a esto, dentro de userList tenemos otra matriz que tiene un campo llamado valor.
0: {workflowRoleDesc: 'Preparer', userList: Array(61), isRoleEnable: true} 1: {workflowRoleDesc: 'Reviewer', userList: Array(44), isRoleEnable: true} 2: {workflowRoleDesc: 'Approver', userList: Array(49), isRoleEnable: true} longitud: 3
[[Prototipo]]: Matriz(0)
s es una variable de cadena que puede tener uno de los siguientes valores a la vez Preparer , Reviewer o Approver .
y
filteredData.map(e=>e.userId) (2) ['86cb7ae5-2b56-4437-af5a-115018d69403', '188e20db-db56-41c9-9bfa-20c7d02b4da0'] En el segundo filtro, cuando uso filteredData.map(e=>e.userId) , no filtra nada, pero si doy el valor '86cb7ae5-2b56-4437-af5a-115018d69403' directamente, funciona como se esperaba.
¿Qué puedo hacer para que funcione?
Bueno, está comparando un value (que parece ser una cadena) con una matriz de cadenas filteredData.map(e=>e.userId) . Tal vez deberías usar:
this.prepData .filter(e=>e.workflowRoleDesc!=s)[1] .userList.filter(e=>filteredData.map(e=>e.userId).indexOf(e.value) < 0) Lo que significa que desea utilizar los usuarios que NO se encuentran entre los de filteredData .