Quiero crear un filtro anidado en js cuando filtre los datos primarios de mi matriz y se vean afectados y cambiados, pero necesito datos preliminares para eliminar los filtros.
mi código js:
let result = companies; result.map((item, i) => {212 let rows = [...result[i].table.table_rows].filter((item3) => { return Object.keys(item3).some(i => item3[i][key] === value[key]); }); result[i].table.table_rows = [...rows]; return result[i]; }); arrayFilter(result);mis datos son:
{ "companies": [ { "company": { "name": "company 1" }, "table": { "table_rows": [ { "cells": { "product_name": "prod1", "pa_size": "12" } }, { "cells": { "product_name": "prod2", "pa_size": "15" } } ] } }, { "company": { "name": "company 2" }, "table": { "table_rows": [ { "cells": { "product_name": "prod2-1", "pa_size": "12" } }, { "cells": { "product_name": "prod2-2", "pa_size": "18" } } ] } } ] }Intenté muchas formas de resolver este problema, pero no obtuve la respuesta correcta.
Su pregunta no está clara, ¿entiendo que quería filtrar la matriz "table_rows" ubicada dentro de cada objeto de matriz de empresas? map y filter devuelve una nueva matriz, por lo que la solución para esto es:
result = result.companies.map((item, i) => { const newItem = {...item}; let rows = newItem .table.table_rows.filter((item3) => { return Object.keys(item3).some(i => item3[i][key] === value[key]); }); newItem.table_rows = [...rows]; return newItem ; }); arrayFilter(result);