Probar el lodash _.filter para devolver una matriz de valores que excluye los valores de una matriz. Digamos que tengo una colección de objetos:
let col = { data: { name: "data1", type: "neighbor" }, }, { data: { name: "data2", type: "subordinate" } }, { data: { name: "data3", type: "affiliate" } } let values = ["neighbor", "affiliate"];Sé que puedo hacer algo como:
const elementsToKeep = _.filter(col, (v) => _.includes(values, v.data("type")));que devolvería "vecino" y "afiliado", pero quiero devolver "subordinado" en su lugar. Sé que esto debería ser bastante simple, pero estoy teniendo dificultades para resolverlo sin escribir una lógica más extensa.
Dado que los datos no están estructurados correctamente como mencionó @BeerusDev, permítanme agregar el código como respuesta e intentar explicarlo.
const col = [{ data: { name: "data1", type: "neighbor" }, }, { data: { name: 'data2', type: 'subordinate' } }, { data: { name: "data3", type: "affiliate" } } ]; let values = ["neighbor", "affiliate"]; const elementsToKeep = _.filter(col, (v) => !_.includes(values, v.data["type"])); console.log(elementsToKeep) <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js"></script> Dado que el resultado de _.includes es un valor booleano, para obtener los datos que no están dentro de la matriz que tiene, necesitamos usar !_.includes(...)