Cómo dividir un array en varias partes iguales en JS

 

 

 

tienes un problema

Una matriz contenía muchos elementos y quería dividirla en varios fragmentos.

Se me ocurrieron dos soluciones completamente diferentes.

A) El primero fue dividir la matriz en partes iguales, por ejemplo, partes de 2 o 3 elementos. B) El segundo fue crear n partes y agregarle un conjunto variable de elementos iguales.

La forma y el motivo de la división son diferentes. La solución (A) es excelente cuando no sabes cuántos grupos obtendrás y no te importa, pero sabes que quieres X elementos en cada nueva matriz que crees.

La solución (B) es excelente cuando sabes cuántos grupos quieres crear y eres estricto al respecto, pero no te importa cuántos elementos contendrá cada nueva matriz.

 

En otras palabras, con una matriz como

[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Con la solución (A) podemos crear fragmentos de 2 elementos y obtener

[ 1, 2 ][ 3, 4 ][ 5, 6 ][ 7, 8 ][ 9, 10 ]

los trozos de 3 elementos:

[ 1, 2, 3 ][ 4, 5, 6 ][ 7, 8, 9 ][ 10 ]

Con la solución (B) podemos dividir la matriz en 2 matrices y obtener:

[ 1, 2, 3, 4, 5 ][ 6, 7, 8, 9, 10 ]

O podemos dividir la matriz en 3 matrices y obtener:

[ 1, 2, 3, 4 ][ 4, 5, 6, 7][ 8, 9, 10 ]

Aquí está la implementación de (A):

const items = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] //… your array, filled with valuesconst n = 3 //tweak this to add more items per lineconst result = new Array(Math.ceil(items.length / n)) .fill() .map(_ = items.splice(0, n))

En este ejemplo resulthay una nueva matriz de matrices: Todo sobre videojuegos

[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ], [ 10 ] ]

Tenga en cuenta que la matriz original se modifica mediante el usosplice()

Aquí está la implementación de (B), asumiendo que desea una matriz de 3 matrices como resultado:

const items = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] //… your array, filled with valuesconst n = 3const result = [[], [], []] //we create it, then we'll fill itconst wordsPerLine = Math.ceil(items.length / 3)for (let line = 0; line n; line++) { for (let i = 0; i wordsPerLine; i++) { const value = items[i + line * wordsPerLine] if (!value) continue //avoid adding "undefined" values result[line].push(value) }}

En este ejemplo resultse muestra

 

[ [ 1, 2, 3, 4 ], [ 5, 6, 7, 8 ], [ 9, 10 ] ]

Tips para principiantes de JavaScript




Tal vez te puede interesar:

  1. Introducción a React
  2. Agregar evento de clic a los elementos DOM devueltos desde querySelectorAll
  3. Cómo cambiar el valor de un nodo DOM
  4. Cómo comprobar si un elemento DOM tiene una clase

Cómo dividir un array en varias partes iguales en JS

Cómo dividir un array en varias partes iguales en JS

Se me ocurrieron dos soluciones completamente diferentes. Una matriz contenía muchos elementos y quería dividirla en varios fragmentos. Una matriz contenía

programar

es

https://aprendeprogramando.es/static/images/programar-como-dividir-un-array-en-varias-partes-iguales-en-js-2340-0.jpg

2024-11-06

 

Cómo dividir un array en varias partes iguales en JS
Cómo dividir un array en varias partes iguales en JS

Si crees que alguno de los contenidos (texto, imagenes o multimedia) en esta página infringe tus derechos relativos a propiedad intelectual, marcas registradas o cualquier otro de tus derechos, por favor ponte en contacto con nosotros en el mail [email protected] y retiraremos este contenido inmediatamente

 

 

Update cookies preferences