Necesito ayuda. Estoy tratando de obtener datos de una matriz, pero cada vez que agrego un nuevo filtro de grupo (estoy trabajando con una cuadrícula de Kendo personalizada), lo que recibo es una matriz anidada y si quiero obtener esos datos, necesito agregar un método de mapa en la nueva matriz de 'elementos'. El problema es que no tengo un solo filtro de grupo sino que tengo demasiados. ¿Que puedo hacer?
Entonces, cada vez que tengo que agregar otro método de mapa en la matriz de elementos, esto no es muy cómodo. ¿Hay una solución a mi problema? Puedo obtener fácilmente el número del filtro de grupo.
Puede usar flatMap convertir, por ejemplo [ [1, 2], [3, 4] ] a [1, 2, 0, 3, 4, 0] para arr.flatMap(v => [...v, 0]) . En su caso, esto debería tener el mismo resultado:
const temp = this.result.data .flatMap(x => x.array) .map(y => y.selections)Esto hace que su código sea mucho más legible y más fácil de mantener y agregar.
Si realmente desea agregar dinámicamente funciones de mapa , puede hacer algo como esto:
const maps = [ x => x.array, v => [v, v * 11], v => [v, -v], v => `num: ${v}`, ]; const data = [ { array: [1, 2] }, { array: [3] }, ]; const temp = maps.reduce((data, map) => data.flat().map(map), data); console.log(temp);Puede eliminar forEach reemplazando el primer mapa de la siguiente manera:
this.result.data.forEach((x)=>{ this.selections += x.array.map((y)=> y.selections) })Sería útil tener un ejemplo de lo que this.result y this.selections podrían contener