Как разбить массив на четные части в JavaScript

Введение Массивы - одна из наиболее часто используемых структур в программировании на JavaScript, поэтому важно знать их встроенные методы, как заднюю часть вашего кармана. В этом руководстве мы рассмотрим, как разбить массив на части размером n в JavaScript. В частности, мы рассмотрим два подхода: 1. Использование метода slice () и цикла for 2. Использование метода splice () и цикла while. Разделение массива на четные блоки с помощью метода slice () Самый простой способ извлекать

Вступление

Массивы - одна из наиболее часто используемых структур в программировании на JavaScript, поэтому важно знать их встроенные методы, как заднюю часть кармана.

В этом руководстве мы рассмотрим, как разбить массив на части n в JavaScript .

В частности, мы рассмотрим два подхода:

  1. Использование метода slice() и цикла for
  2. Используя splice() метод и while цикл

Разделение массива на четные части с помощью метода slice ()

Самый простой способ извлечь кусок массива или, скорее, разрезать его, - это метод slice()

slice(start, end) - возвращает часть вызванного массива между start и end индексами.

Примечание: start и end могут быть отрицательными целыми числами, что просто означает, что они перечисляются с конца массива. -1 - последний элемент массива, -2 - предпоследний и так далее ...

Массив, возвращаемый slice() возвращает неглубокую копию, что означает, что любые ссылки в исходном массиве будут просто скопированы как есть и не будут выделять память для совершенно новых объектов.

Итак, чтобы разделить список или массив на четные части, давайте воспользуемся методом slice()

 function sliceIntoChunks(arr, chunkSize) { 
 const res = []; 
 for (let i = 0; i < arr.length; i += chunkSize) { 
 const chunk = arr.slice(i, i + chunkSize); 
 res.push(chunk); 
 } 
 return res; 
 } 
 
 const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; 
 console.log(sliceIntoChunks(arr, 3)); 

Выполнение приведенного выше кода дает следующий результат:

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

В приведенном выше коде мы разбиваем arr на более мелкие фрагменты размером 3 , выполняя итерацию по массиву и разрезая его на каждый chunkSize . На последней итерации останется только один элемент ( 10 ), который должен будет составить отдельный кусок.

Разделение массива на четные блоки с помощью метода splice ()

Хотя метод splice() может показаться похожим на метод slice() , его использование и побочные эффекты сильно отличаются. Рассмотрим подробнее:

 // Splice does the following two things: 
 // 1. Removes deleteCount elements starting from startIdx (in-place) 
 // 2. Inserts the provided new elements (newElem1, newElem2...) into myArray starting with index startIdx (also in-place) 
 // The return value of this method is an array that contains all the deleted elements 
 myArray.splice(startIdx, deleteCount, newElem1, newElem2...) 
 
 let arrTest = [2, 3, 1, 4] 
 let chunk = arrTest.splice(0,2) 
 console.log(chunk) // [2, 3] 
 console.log(arrTest) // [1, 4] 

Давайте посмотрим на это в действии на примере кода:

 function spliceIntoChunks(arr, chunkSize) { 
 const res = []; 
 while (arr.length > 0) { 
 const chunk = arr.splice(0, chunkSize); 
 res.push(chunk); 
 } 
 return res; 
 } 
 
 const arr = [1, 2, 3, 4, 5, 6, 7, 8]; 
 console.log(spliceIntoChunks(arr, 2)); 

Выполнение этого кода дает:

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

Здесь мы используем while цикл для обхода массива. arr.length > 0 каждый фрагмент в результирующий массив до тех пор, пока в исходном массиве не останется элементов (arr.length> 0).

Очень важно отметить, что splice() изменяет исходный массив. где, поскольку slice() создает копию исходного массива, поэтому в исходном массиве не будет никаких изменений.

Заключение

В этой статье мы рассмотрели несколько простых способов разбить список на равные части в JavaScript. При этом мы узнали, как работать с несколькими встроенными методами массива, такими как slice() и splice() .

comments powered by Disqus