range
创建用于迭代的范围
基本用法
给定起始值、结束值、值和步长,返回一个生成器,该生成器将按步长生成从起始值到结束值的值。适用于用 for of 替换 for (let i = 0)。Range 将返回一个生成器,for of 将一次调用一个,因此创建大型范围是安全的。
接口与 list 相同。
向 Python 的 range 功能致敬
import { range } from 'radash'
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, 3
range(start, end)
当给出两个参数时,它们被视为 start 和 end。返回一个生成器,该生成器产生从 start 到 end 的值
range(2, 6) // 生成 2, 3, 4, 5, 6
range(start, end, value)
当给出第三个参数时,它被视为生成器中产生的 value。如果 value 是一个函数,它将被调用(带有索引参数)来创建每个值。
range(2, 4, {}) // 生成 {}, {}, {}
range(2, 4, null) // 生成 null, null, null
range(2, 4, (i) => i) // 生成 2, 3, 4
range(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
相关内容
- alphabetical 按属性对对象数组进行字母顺序排序 给定一个对象数组和一个用于确定排序属性的回调函数,返回一个按字母顺序排序的新数组
- boil 将列表项缩减为一个项 给定一个项数组,返回在比较条件中获胜的最终项
- cluster 将列表拆分为指定大小的多个列表 给定一个项数组和所需的集群大小(`n`),返回一个数组的数组
- counting 创建一个包含项目出现次数的对象 给定一个对象数组和一个用于确定每个对象应如何标识的标识回调函数
- diff 创建两个数组之间的差异数组 给定两个数组,返回第一个数组中存在但第二个数组中不存在的所有项的数组
- first 获取列表中的第一个项 给定一个项数组,返回第一个项,如果不存在任何项则返回默认值