range
创建用于迭代的范围
165 bytes
since v12.1.0
使用方法
给定开始、结束、值和步长,返回一个生成器,按步长从开始到结束产生值。用于用 for of 替换 for (let i = 0)。Range 将返回一个生成器,for of 将逐一调用,因此创建大范围是安全的。
接口与 list 相同。
向 Python 的 range 功能致敬
import * as _ from "radashi";
_.range(3); // 产生 0, 1, 2, 3_.range(0, 3); // 产生 0, 1, 2, 3_.range(0, 3, "y"); // 产生 y, y, y, y_.range(0, 3, () => "y"); // 产生 y, y, y, y_.range(0, 3, (i) => i); // 产生 0, 1, 2, 3_.range(0, 3, (i) => `y${i}`); // 产生 y0, y1, y2, y3_.range(0, 3, obj); // 产生 obj, obj, obj, obj_.range(0, 6, (i) => i, 2); // 产生 0, 2, 4, 6
for (const i of _.range(0, 200, 10)) { console.log(i); // => 0, 10, 20, 30 ... 190, 200}
for (const i of _.range(0, 5)) { console.log(i); // => 0, 1, 2, 3, 4, 5}签名
range 函数可以用不同的参数做很多事情。
range(size)
当给定单个参数时,它被视为 size。返回一个从 0 到 size 产生值的生成器。
_.range(3); // 产生 0, 1, 2, 3range(start, end)
当给定两个参数时,它们被视为 start 和 end。返回一个从 start 到 end 产生值的生成器。
_.range(2, 6); // 产生 2, 3, 4, 5, 6range(start, end, value)
当给定第三个参数时,它被视为在生成器中产生的 value。如果 value 是函数,它将被调用(带有索引参数)来创建每个值。
_.range(2, 4, {}); // 产生 {}, {}, {}_.range(2, 4, null); // 产生 null, null, null_.range(2, 4, (i) => i); // 产生 2, 3, 4range(start, end, value, step)
当给定第四个参数时,它被视为从 start 到 end 产生值时要跳过的 step 大小。
_.range(2, 4, (i) => i, 2); // 产生 2, 4_.range(25, 100, (i) => i, 25); // 产生 25, 50, 75, 100