2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

連続する数字を配列に代入する方法 JavaScript版

Posted at

1, 2, 3, ... みたいに連続する数字を使ってアルゴリズムを工夫したら、 for 文少なく書けますよね。

Ruby には Array(1..3) のように、 .. 演算子を使うことで簡単に書けます。

JavaScript では簡単に書けないのでしょうか?

ES2015での記述を使います。

初級編: for 文を使う

素直な発想をすると、 for 文が理解しやすくて忘れません。

const seq = []

for (let i = 1; i <= 3; i++) {
  seq.push(i)
}

console.log(seq) // [ 1, 2, 3 ]

中級編: function * 文を使う

async / await がデファクトになって、ジェネレータ関数はあまり登場頂くことは少ないのですが、 for 文が登場するので分かりやすいですね。

const seq = [...(function * () {
  for (let i = 1; i <= 3; i++) {
    yield i
  }
})()]

console.log(seq) // [ 1, 2, 3 ]

上級編: 空配列のインデックスを使う

配列を作成する Array(n) コンストラクタを呼び出すと、配列の要素数が n である空の配列を作成します。

console.log(Array(3)) // [ <3 empty items> ]

この空配列のインデックスを繰り返すと、良い感じで連続する数字が取得できます。

const seq = [...Array(3)].map((i, index) => index + 1)

console.log(seq) // [ 1, 2, 3 ]

または、 Array.prototype.keys() を使う方法があります。

const seq = [...Array(3).keys()].map(i => i + 1)

console.log(seq) // [ 1, 2, 3 ]
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?