示例:生成字符范围
// 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 值转换为字符。
另请阅读