TypeScript で range を実装する
Article
#TypeScript
#競プロ
Python の range() のようなものを TypeScript で実装しました
コード
function* range(start: number, end: number, step = 1) {
if ((start < end && step <= 0) || (start > end && step >= 0))
throw new Error();
const symbol = step > 0 ? 1 : -1;
for (let i = start * symbol; i < end * symbol; i += step * symbol) {
yield i && i * symbol;
}
}start から始まり end で終わる**ジェネレータ―**です。
step はステップの間隔で、 2 とすると 1 つ飛ばしに、-1 でデクリメントすることもできます
使い方
0, 1, ..., 9 まで足す
let sum = 0;
for (const x of range(0, 10)) {
sum += x;
}100 までの奇数を取得する
const odds = [...range(1, 101, 2)];