2021-07-18 公開

TypeScript で range を実装する

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)]
me

Web Frontend が好きな大学院生。大学以降は符号・暗号の研究をしています