30秒学会 JavaScript 片段 · 2024年1月20日

30秒学会 JavaScript 片段 – Range generator

创建一个生成器,可以在指定的范围内生成固定间隔的数字。

  • 使用一个 while 来遍历从 startend 中的所有数, 用 yield 来返回中间的每一个数,并依次增加 step
  • 如果第三个参数(步长)忽略, step,则使用默认值 1

代码实现

const rangeGenerator = function* (start, end, step = 1) {
  let i = start;
  while (i < end) {
    yield i;
    i += step;
  }
};

for (let i of rangeGenerator(6, 10)) console.log(i);
// 将打印 6, 7, 8, 9

翻译自:https://www.30secondsofcode.org/js/s/range-generator