简介
在本实验中,我们将探索如何使用 JavaScript 将可迭代对象分块为指定大小的较小数组。我们将实现一个函数,该函数接受一个可迭代对象和一个大小参数,并返回一个由较小数组组成的可迭代对象,每个较小数组最多包含 size 个元素。此技术可用于各种应用程序,例如将大型数据集分解为较小的块进行处理,或通过减少一次传输的数据量来优化网络请求。
将可迭代对象分块
要将一个可迭代对象分块为指定大小的较小数组,请按以下步骤操作:
- 打开终端/SSH 并输入
node以开始练习编码。 - 在给定的可迭代对象上使用
for...of循环,使用Array.prototype.push()将每个新值添加到当前的块中。 - 使用
Array.prototype.length检查当前的块是否达到所需的大小,如果达到则yield该值。 - 使用
Array.prototype.length检查最后一个块,如果不为空则yield它。 - 使用以下代码:
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;
};
- 使用此代码测试该函数:
const x = new Set([1, 2, 1, 3, 4, 1, 2, 5]);
[...chunkify(x, 2)]; // [[1, 2], [3, 4], [5]]
总结
恭喜你!你已经完成了“将可迭代对象分块”实验。你可以在 LabEx 中练习更多实验来提升你的技能。