Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

88
Vistas
Dividir una matriz bidimensional de longitud especificada

Divida la matriz original en una matriz bidimensional de la longitud especificada

list => source array

columns => columns number

targetList => two-dimensional array

 const list = [1,2,3,4,5,6,7,8,9,10] const columns = 4; const targetList = [ [1,2,3], [4,5,6], [7,8,9], [10] ]; const columns = 5; const targetList = [ [1,2], [3,4], [5,6], [7,8], [9,10] ]; const columns = 6; const targetList = [ [1,2], [3,4], [5,6], [7,8], [9], [10] ];
 const list = [1,2,3,4,5,6] const columns = 4; const targetList = [ [1,2], [3,4], [5], [6] ];
 const list = [1,2,3,4] const columns = 5; const targetList = [ [1], [2], [3], [4] ];
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Puede usar Array.prototype.reduce y transformar la list dada en la cuadrícula deseada.

Empuje una nueva fila a la cuadrícula resultante si se cumple alguna de las siguientes condiciones:

  1. Si no hay filas actualmente.
  2. Si la última fila está llena, es decir, no se pueden agregar más columnas a la última fila, agregue una nueva fila con el elemento actual.
  3. Si los elementos que quedan por enviar se vuelven iguales a las filas que quedan por crear.

 const transform = (list, rows) => list.reduce((t, l, i) => { if ( !t.length || t.at(-1).length >= Math.ceil(list.length / rows) || list.length - i === rows - t.length ) { t.push([]); } t.at(-1).push(l); return t; }, []); console.log(transform([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 4)); console.log(transform([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 5)); console.log(transform([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 6)); console.log(transform([1, 2, 3, 4, 5, 6], 4)); console.log(transform([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 4)); console.log(transform([1, 2, 3, 4], 5));

Otra documentación relevante:

  • Array.prototype.at
  • Array.prototype.push
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda