示例: 生成字符范围
// program to generate range of numbers and characters function* iterate(a, b) { for (let i = a; i <= b; i += 1) { yield i } } function range(a, b) { if(typeof a === 'string') { let result = [...iterate(a.charCodeAt(), b.charCodeAt())].map(n => String.fromCharCode(n)); console.log(result); } else { let result = [...iterate(a, b)]; console.log(result); } } range(1, 5); range('A', 'G');
输出
[1, 2, 3, 4, 5] ["A", "B", "C", "D", "E", "F", "G"]
在上面的程序中,在上界和下界之间生成了一个数字和字符范围。
iterate
生成器函数用于迭代上下界。
然后使用扩展语法 ...
来包含 iterate
函数返回的所有元素。
charCodeAt()
方法接受一个索引值并返回一个表示其 UTF-16(16 位 Unicode 转换格式)代码的整数。
map()
方法遍历所有数组元素。
fromCharCode()
方法将 Unicode 值转换为字符。