将可迭代对象分块为较小数组

JavaScriptJavaScriptBeginner
立即练习

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

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本实验中,我们将探索如何使用 JavaScript 将可迭代对象分块为指定大小的较小数组。我们将实现一个函数,该函数接受一个可迭代对象和一个大小参数,并返回一个由较小数组组成的可迭代对象,每个较小数组最多包含 size 个元素。此技术可用于各种应用程序,例如将大型数据集分解为较小的块进行处理,或通过减少一次传输的数据量来优化网络请求。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("`JavaScript`")) -.-> javascript/BasicConceptsGroup(["`Basic Concepts`"]) javascript(("`JavaScript`")) -.-> javascript/AdvancedConceptsGroup(["`Advanced Concepts`"]) javascript/BasicConceptsGroup -.-> javascript/variables("`Variables`") javascript/BasicConceptsGroup -.-> javascript/data_types("`Data Types`") javascript/BasicConceptsGroup -.-> javascript/arith_ops("`Arithmetic Operators`") javascript/BasicConceptsGroup -.-> javascript/comp_ops("`Comparison Operators`") javascript/BasicConceptsGroup -.-> javascript/cond_stmts("`Conditional Statements`") javascript/BasicConceptsGroup -.-> javascript/loops("`Loops`") javascript/BasicConceptsGroup -.-> javascript/obj_manip("`Object Manipulation`") javascript/AdvancedConceptsGroup -.-> javascript/spread_rest("`Spread and Rest Operators`") subgraph Lab Skills javascript/variables -.-> lab-28195{{"`将可迭代对象分块为较小数组`"}} javascript/data_types -.-> lab-28195{{"`将可迭代对象分块为较小数组`"}} javascript/arith_ops -.-> lab-28195{{"`将可迭代对象分块为较小数组`"}} javascript/comp_ops -.-> lab-28195{{"`将可迭代对象分块为较小数组`"}} javascript/cond_stmts -.-> lab-28195{{"`将可迭代对象分块为较小数组`"}} javascript/loops -.-> lab-28195{{"`将可迭代对象分块为较小数组`"}} javascript/obj_manip -.-> lab-28195{{"`将可迭代对象分块为较小数组`"}} javascript/spread_rest -.-> lab-28195{{"`将可迭代对象分块为较小数组`"}} end

将可迭代对象分块

要将一个可迭代对象分块为指定大小的较小数组,请按以下步骤操作:

  1. 打开终端/SSH 并输入 node 以开始练习编码。
  2. 在给定的可迭代对象上使用 for...of 循环,使用 Array.prototype.push() 将每个新值添加到当前的 中。
  3. 使用 Array.prototype.length 检查当前的 是否达到所需的 大小,如果达到则 yield 该值。
  4. 使用 Array.prototype.length 检查最后一个 ,如果不为空则 yield 它。
  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 中练习更多实验来提升你的技能。

您可能感兴趣的其他 JavaScript 教程