Divisió d'una matriu en trossos en JavaScript implica dividir la matriu en matrius més petites d'una mida especificada. Aquest procés és útil per gestionar grans conjunts de dades de manera més eficient o per processar dades en parts més petites i més manejables dins de l'aplicació.
Mètodes per dividir la matriu en trossos:
Taula de contingut
- Utilitzant el mètode JavaScript slice().
- Utilitzant el mètode JavaScript splice().
- Utilitzant el mètode Lodash _.chunk().
- Ús d'un bucle per dividir la matriu
- Utilitzant Array.reduce():
- Utilitzant Array.from() i Array.splice()
Utilitzant el mètode JavaScript slice().
El mètode de tall (). retorna una nova matriu que conté els elements seleccionats. Aquest mètode selecciona els elements a partir de l'argument inicial donat i acaba a, però excloent l'argument final donat.
Sintaxi:
array.slice(start, end);>
Exemple: Aquest exemple utilitza el llesca () mètode per dividir la matriu en trossos de la matriu. Aquest mètode es pot utilitzar repetidament per dividir una matriu de qualsevol mida.
Javascript // Size of chunk let chunk = 4; // Input array let arr = [1, 2, 3, 4, 5, 6, 7, 8]; // Spiltted arrays let arr1 = arr.slice(0, chunk); let arr2 = arr.slice(chunk, chunk + arr.length); // Display Output console.log('Array1: ' + arr1 + '
Array2: ' + arr2);> Sortida
Array1: 1,2,3,4 Array2: 5,6,7,8>
Utilitzant el mètode JavaScript splice().
mètode splice(). afegeix/elimina elements a/des d'una matriu i retorna la llista d'elements eliminats.
Sintaxi:
array.splice(index, number, item1, ....., itemN);>
Exemple: Aquest exemple utilitza el empalmament () mètode per dividir la matriu en trossos de la matriu. Aquest mètode elimina els elements de la matriu original. Aquest mètode es pot utilitzar repetidament per dividir una matriu de qualsevol mida.
dialecte hibernatJavascript
// Size of aaray chunks let chunk = 2; // Input array let arr = [1, 2, 3, 4, 5, 6, 7, 8]; // Splitted arrays let arr1 = arr.splice(0, chunk); let arr2 = arr.splice(0, chunk); let arr3 = arr.splice(0, chunk); let arr4 = arr.splice(0, chunk); // Display output console.log('Array1: ' + arr1); console.log('Array2: ' + arr2); console.log('Array3: ' + arr3); console.log('Array4: ' + arr4);> Sortida
Array1: 1,2 Array2: 3,4 Array3: 5,6 Array4: 7,8>
Utilitzant Mètode Lodash _.chunk().
En aquest enfocament, estem utilitzant Mètode Lodash _.chunk(). que retorna la matriu donada en trossos segons el valor donat.
Exemple: En aquest exemple, estem trencant la matriu passant la mida '3' al mètode _.chunk(). La mida del tros es pot variar i es pot utilitzar una matriu de diferents tipus de dades amb la funció de tros.
Javascript // Requiring the lodash module // in the script let _ = require('lodash'); let arr = [1, 2, 3, 4, 5, 6, 'a', 'b', 'c', 'd']; console.log('Before: ', arr) // Making chunks of size 3 console.log('After: ', _.chunk(arr, 3))> Sortida:
Before: [ 1, 2, 3, 4, 5, 6, 'a', 'b', 'c', 'd' ] After: [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 'a', 'b', 'c' ], [ 'd' ] ]>
Ús d'un bucle per dividir la matriu
En aquest enfocament, iterem sobre la matriu original i la tallem en trossos de la mida desitjada, empenyent cada tros en una nova matriu.
Exemple:
JavaScript function chunkArray(array, chunkSize) { const chunks = []; for (let i = 0; i < array.length; i += chunkSize) { chunks.push(array.slice(i, i + chunkSize)); } return chunks; } const arr = [1, 2, 3, 4, 5, 6, 7, 8]; const chunkedArray = chunkArray(arr, 4); console.log(chunkedArray);> Sortida
[ [ 1, 2, 3, 4 ], [ 5, 6, 7, 8 ] ]>
Utilitzant Array.reduce()
Utilitzant Array.reduce() , divideix una matriu en trossos d'una mida especificada. La funció de reducció acumula trossos basats en el chunkSize, empenyen parts de la matriu en rodanxes a la matriu de trossos i retorna la matriu de trossos resultant.
Exemple: En aquest exemple, dividim una matriu en trossos d'una mida especificada mitjançant el mètode reduce. Itera a través de la matriu, empenyent subarrays de la mida de tros definida en una matriu resultant.
JavaScript // Size of chunk let chunk = 4; // Input array let arr = [1, 2, 3, 4, 5, 6, 7, 8]; // Split array into chunks using reduce method let splittedArrays = arr.reduce((result, item, index) =>{ if (índex % tros === 0) { resultat.push(arr.slice (índex, índex + tros)); } retorna el resultat; }, []); // Mostra la sortida splittedArrays.forEach((subArray, index) => { console.log(`Array${index + 1}: ${subArray}`); });>>>
Sortida Utilitzant Array.from() i Array.splice()Aquest mètode consisteix a crear una nova matriu a partir de la matriu original utilitzant Array.from() i després eliminar-ne elements repetidament mitjançant splice() per formar trossos.
Exemple: En aquest exemple, la funció chunkArray divideix una matriu en trossos d'una mida especificada. Crea una còpia de la matriu original i extreu porcions iterativament en funció de la mida del tros fins que la matriu està buida.
JavaScript function chunkArray(array, chunkSize) { const chunks = []; const copyArray = Array.from(array); // Create a copy of the original array while (copyArray.length>0) { chunks.push (copyArray.splice (0, chunkSize)); } retornar trossos; } // Exemple d'ús: const arr = [1, 2, 3, 4, 5, 6, 'a', 'b', 'c', 'd']; const chunkSize = 3; const chunks = chunkArray (arr, chunkSize); console.log(trossos);>>>
Sortida