Cómo dividir una matriz en partes iguales en JavaScript

En este tutorial, aprenderemos cómo dividir una matriz en partes iguales usando Array.splice() método en JavaScript. También aprenderemos en qué se diferencia de Array.slice() método.

Índice
  1. Divida la matriz en dos partes iguales
  2. Array.slice y Array.splice
  3. Divida la matriz en tres partes iguales
  4. Más información sobre Array.splice

Divida la matriz en dos partes iguales

Puede dividir una matriz en dos en dos pasos:

  1. Encuéntralo índice promedio de la mesa utilizando longitud/2 y Math.ceil() método,
  2. Obtenga dos partes iguales de la matriz usando esto índice promedio y Array.splice() método
const list = [1, 2, 3, 4, 5, 6];
const middleIndex = Math.ceil(list.length / 2);

const firstHalf = list.splice(0, middleIndex);   
const secondHalf = list.splice(-middleIndex);

console.log(firstHalf);  // [1, 2, 3]
console.log(secondHalf); // [4, 5, 6]
console.log(list);       // []

Array.splice() método modificar el contenido de una tabla eliminando, reemplazando o agregando elementos. No confunda este método con Array.slice() método que sirve para hacer una copia de una tabla.

  • list.splice(0, middleIndex) elimina los primeros 3 elementos a partir del índice 0 de una matriz y los devuelve.
  • list.splice(-middleIndex) elimina los últimos 3 elementos de una matriz y los devuelve.

Al final de estas dos operaciones, ya que hemos eliminado todos los elementos de la matriz, la matriz original está vacía.

También tenga en cuenta que el número de elementos es par en el caso anterior, en caso de número impar de elementos, la primera mitad tendrá un elemento extra.

const list = [1, 2, 3, 4, 5];
const middleIndex = Math.ceil(list.length / 2);

list.splice(0, middleIndex); // returns [1, 2, 3]
list.splice(-middleIndex);   // returns [4, 5]

Array.slice y Array.splice

A veces deseas no modificar la tabla originalesto también se puede hacer encadenando Array.slice() método con Array.splice()

const list = [1, 2, 3, 4, 5, 6];
const middleIndex = Math.ceil(list.length / 2);

const firstHalf = list.slice().splice(0, middleIndex);   
const secondHalf = list.slice().splice(-middleIndex);

console.log(firstHalf);  // [1, 2, 3]
console.log(secondHalf); // [4, 5, 6]
console.log(list);       // [1, 2, 3, 4, 5, 6];

Vemos que nuestra matriz original permanece igual ya que estamos haciendo una copia de la matriz original usando Array.slice() antes de eliminar los elementos usando Array.splice().

Divida la matriz en tres partes iguales

Definamos un arreglo y dividámoslo en tres partes iguales usando el Array.splice método.

const list = [1, 2, 3, 4, 5, 6, 7, 8, 9];
const threePartIndex = Math.ceil(list.length / 3);

const thirdPart = list.splice(-threePartIndex);
const secondPart = list.splice(-threePartIndex);
const firstPart = list;     

console.log(firstPart);  // [1, 2, 3]
console.log(secondPart); // [4, 5, 6]
console.log(thirdPart);  // [7, 8, 9]

Analicemos cómo sucedió:

  1. Primero extrajimos la tercera parte usando list.splice(-threePartIndex)que elimina los últimos 3 elementos [7, 8, 9]En este punto list contiene solo los primeros 6 elementos [1, 2, 3, 4, 5, 6].
  2. Ahora hemos extraído la segunda parte usando list.splice(-threePartIndex)que elimina los últimos 3 elementos del resto list = [1, 2, 3, 4, 5, 6] Cuál es [4, 5, 6]En este punto list contiene solo los primeros 3 elementos [1, 2, 3] cual es la primera parte.

Más información sobre Array.splice

Veamos más ejemplos usando Array.splice() método. toma nota de que Array.slice() ha sido usado antes Array.splice() porque no queremos modificar la tabla original. Puede omitir el uso de Array.slice() si desea modificar la tabla original en los ejemplos a continuación.

// Define an array
const list = [1, 2, 3, 4, 5, 6, 7, 8, 9];
  1. Obtener el primer elemento de una matriz
    list.slice().splice(0, 1); // [1]
    
  2. Obtener los primeros cinco elementos de una matriz
    list.slice().splice(0, 5); // [1, 2, 3, 4, 5]
    
  3. Obtenga todos los elementos después de los primeros cinco elementos de una matriz
    list.slice().splice(5);   // [6, 7, 8, 9]
    
  4. Obtener el último elemento de una matriz
    list.slice().splice(-1);   // [9]
    
  5. Obtener los últimos tres elementos de una matriz
    list.slice().splice(-3);   // [7, 8, 9]
    

Si quieres conocer otros artículos parecidos a Cómo dividir una matriz en partes iguales en JavaScript puedes visitar la categoría Tutoriales.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir

Esta página web utiliza cookies para analizar de forma anónima y estadística el uso que haces de la web, mejorar los contenidos y tu experiencia de navegación. Para más información accede a la Política de Cookies . Ver mas