Разделение итерируемых объектов на более мелкие массивы

Beginner

This tutorial is from open-source community. Access the source code

Введение

В этом практическом занятии мы изучим концепцию разделения итерируемого объекта на более мелкие массивы заданного размера с использованием JavaScript. Мы реализуем функцию, которая принимает итерируемый объект и параметр размера и возвращает итерируемый объект из более мелких массивов, каждый из которых содержит максимум size элементов. Эта техника может быть полезна для различных приложений, таких как разбиение больших наборов данных на более мелкие части для обработки или оптимизация сетевых запросов путём уменьшения количества передаваемых данных за один раз.

Разделить итерируемый объект

Чтобы разделить итерируемый объект на более мелкие массивы заданного размера, следуйте этим шагам:

  1. Откройте Терминал/SSH и введите node, чтобы начать практиковаться в написании кода.
  2. Используйте цикл for...of для заданного итерируемого объекта, используя Array.prototype.push(), чтобы добавить каждое новое значение в текущий chunk.
  3. Проверьте, имеет ли текущий chunk требуемый размер с использованием Array.prototype.length, и если да, то возвращайте значение.
  4. Проверьте финальный chunk с использованием Array.prototype.length и возвращайте его, если он не пустой.
  5. Используйте следующий код:
const chunkify = function* (itr, size) {
  let chunk = [];
  for (const v of itr) {
    chunk.push(v);
    if (chunk.length === size) {
      yield chunk;
      chunk = [];
    }
  }
  if (chunk.length) yield chunk;
};
  1. Используйте этот код для тестирования функции:
const x = new Set([1, 2, 1, 3, 4, 1, 2, 5]);
[...chunkify(x, 2)]; // [[1, 2], [3, 4], [5]]

Резюме

Поздравляем! Вы завершили практическое занятие "Разделить итерируемый объект". Вы можете выполнить больше практических занятий в LabEx, чтобы улучшить свои навыки.