この例では、上限と下限を渡すことによって数値と文字の範囲を生成するJavaScriptプログラムの作成方法を学習します。
例:文字範囲を生成する
// 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
ジェネレーター関数は、下限と上限を反復するために使用されます。- 次に、spread構文
...
を使用して、iterate
関数によって返されるすべての要素を含めます。 charCodeAt()
メソッドはインデックス値を受け取り、UTF-16(16ビットUnicode変換形式)コードを表す整数を返します。map()
メソッドは、すべての配列要素を反復処理します。fromCharCode()
メソッドは、Unicode値を文字に変換します。