Tengo la siguiente línea de código que me devuelve una o más matrices según la casilla de verificación en la que se hace clic.
selected.forEach(langsel => { let filtered = person.filter(pers => pers.language == langsel); })seleccionado y no reporto las otras variables por simplicidad en la lectura.
Tengo una lista de casillas de verificación donde cada una se refiere a un idioma en particular. Entonces, cada vez que se hace clic en una casilla de verificación, quiero que se me devuelvan las personas que hablan ese idioma; esto debe devolverse en una matriz de objetos.
catsel se refiere a la casilla de verificación que está seleccionada (al ser una casilla de verificación, también se puede seleccionar más de una). Entonces, para cada idioma que se selecciona, me devuelve la matriz de objetos en la variable filtrada .
Por ejemplo, si selecciono el idioma inglés a través de la casilla de verificación, obtengo:
[{id: "2", nombre: "Tomas Addreh", idioma: "Inglés"},{id: "6", nombre: "Mark Addreh", idioma: "Inglés"}];
si junto con el checkbox seleccionado anteriormente, por lo tanto inglés, también selecciono el checkbox relativo al idioma español, filtrado me devuelve:
[{id: "2", nombre: "Tomas Addreh", idioma: "Inglés"},{id: "6", nombre: "Mark Addreh", idioma: "Inglés"}];
[{id: "15", nombre: "Alex Atres", idioma: "Español"}, {id: "1", nombre: "Mark Sertoj", idioma: "Español"}, id: "12", nombre : "Martha Forrest", idioma: "Español"];
filtrado en el último caso me devuelve dos matrices separadas.
Quiero que se fusionen en una matriz .
¿Puede alguien amablemente ayudarme?
Conecto la matriz usando el operador de propagación.
let people = []; selected.forEach(langsel => { let filteredPerson = person.filter(pers => pers.language == langsel); people = [...people, ...filteredPerson]; })