Tengo un problema de comprensión y trataré de ser básico con mi problema porque involucra muchos datos. Aquí hay una maqueta simple.
Desde myArray a continuación, intento crear una nueva matriz 2D (arrayFinal) en forma de [[element],[element],[element]], para poder usar setValues() con Excel Office Script. En este ejemplo, cada elemento debe tener más de 2 elementos.
Pero realmente no voy a ninguna parte con mi camino.
Solo recibo un retorno como, con demasiados [[[]]] (uno demasiado), y solo el último elemento se repite.
[[[1,5,7]],[[1,5,7]],[[1,5,7]],[[1,5,7]],[[1,5,7]] ,[[1,5,7]]]
¿Podrías echar un vistazo y decirme cuál es el problema?
let myArray: number[][] = [[1, 2, 3], [2, 4], [5, 6, 7],[1],[2,3],[1,5,7]]; let testArray: (string | boolean | number)[][] = []; let arrayFinal: (string | boolean | number)[][] = []; myArray.map(x => { testArray.length = 0; if (x.length > 2) { testArray.push(x); } arrayFinal.push(testArray); }) console.log(JSON.stringify(arrayFinal))Gracias !
Si lo entiendo correctamente, está tratando de filtrar la matriz 2D original para que solo contenga sub-matrices con más de 2 elementos, ¿verdad?
Me pregunto si querrías probar algo como esto:
let myArray: number[][] = [[1, 2, 3], [2, 4], [5, 6, 7],[1],[2,3],[1,5,7]]; let arrayFinal = myArray.filter(arr => arr.length > 2); console.log(JSON.stringify(arrayFinal))La salida debe ser:
[[1,2,3],[5,6,7],[1,5,7]]