1からNまでの配列を作成する方法:スプレッド構文とMath.randomを使う

2024-04-02

JavaScriptで1からNまでの配列を作成する方法

forループを使う

最も基本的な方法は、forループを使って1からNまでの数字を順番に配列に追加していく方法です。

function createArray(n) {
  const arr = [];
  for (let i = 1; i <= n; i++) {
    arr.push(i);
  }
  return arr;
}

const arr = createArray(10);
console.log(arr); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

この方法は、理解しやすく、コードもシンプルです。 ただし、Nが大きい場合、処理速度が遅くなる可能性があります。

Array.fromを使うと、配列のようなオブジェクトから新しい配列を作成することができます。

const arr = Array.from({length: n}, (_, i) => i + 1);
console.log(arr); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

この方法は、forループよりも簡潔にコードを書くことができます。 また、処理速度も速くなります。

スプレッド構文を使うと、イテレータから新しい配列を作成することができます。

const arr = [...Array(n).keys()].map(i => i + 1);
console.log(arr); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

この方法は、Array.fromと似ていますが、より簡潔にコードを書くことができます。 ただし、ブラウザのサポート状況を確認する必要があります。

ライブラリを使う

Lodashなどのライブラリを使えば、1からNまでの配列を簡単に作成することができます。

const _ = require('lodash');
const arr = _.range(1, n + 1);
console.log(arr); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

この方法は、コードを簡潔に書くことができます。 ただし、ライブラリの読み込みが必要になります。

1からNまでの配列を作成するには、いくつかの方法があります。 それぞれの特徴とメリット・デメリットを理解し、状況に応じて使い分けることが重要です。




forループを使う

function createArray(n) {
  const arr = [];
  for (let i = 1; i <= n; i++) {
    arr.push(i);
  }
  return arr;
}

const arr = createArray(10);
console.log(arr); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Array.fromを使う

const arr = Array.from({length: n}, (_, i) => i + 1);
console.log(arr); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

スプレッド構文を使う

const arr = [...Array(n).keys()].map(i => i + 1);
console.log(arr); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

ライブラリを使う

const _ = require('lodash');
const arr = _.range(1, n + 1);
console.log(arr); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

実行方法

出力結果

すべての方法で、1からNまでの配列が出力されます。

応用

上記のコードを応用することで、以下のようなこともできます。

  • 1からNまでの偶数のみの配列を作成する
  • 1からNまでの数字をランダムな順序で並べた配列を作成する



1からNまでの配列を作成する他の方法

reduceを使う方法です。

const arr = Array.from({length: n}).reduce((acc, _, i) => {
  acc.push(i + 1);
  return acc;
}, []);

console.log(arr); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

ジェネレータを使う方法です。

function* createArray(n) {
  for (let i = 1; i <= n; i++) {
    yield i;
  }
}

const arr = [...createArray(10)];
console.log(arr); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

スプレッド構文とMath.randomを使う方法です。

const arr = [...Array(n)].map(() => Math.floor(Math.random() * n) + 1);
console.log(arr); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] (ランダムな順序)

ライブラリを使う

Lodashなどのライブラリを使う方法です。

const _ = require('lodash');
const arr = _.shuffle(_.range(1, n + 1));
console.log(arr); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] (ランダムな順序)

javascript arrays range


メモリ節約!JavaScriptで配列を分割してメモリ使用量を削減する方法

slice メソッドは、配列の指定した範囲をコピーした新しい配列を返します。この方法の利点は、非常にシンプルで分かりやすいことです。ただし、分割するサイズが固定されている場合にのみ使用できます。reduce メソッドは、配列の要素を1つの値にまとめるために使用できます。この方法では、分割するサイズを動的に設定することができます。...


HTML5 Audio タグと JavaScript で音声ファイルを再生する方法

基本的な使い方上記コードは、audio. mp3 と audio. ogg という2つの音声ファイルを再生するためのものです。controls 属性は、ブラウザ内蔵のプレーヤーコントロールを表示します。source 要素は、再生する音声ファイルのパスとファイル形式を指定します。...


Express.jsでレスポンスを送信する:res.sendとres.jsonの使い分けガイド

Express. jsは、Node. js用のWebフレームワークであり、Webアプリケーションを効率的に構築することができます。その中で、res. sendとres. jsonは、クライアントにレスポンスを返す際に使用される重要なメソッドです。一見同じような機能に見えますが、実はいくつかの重要な違いがあります。...


Node.jsでファイル削除を極める!ディレクトリ内のファイルを効率的に削除する方法

Node. jsでディレクトリ内のすべてのファイルを削除したいけど、ディレクトリ自体は残しておきたい場合は、以下の2つの方法があります。fs モジュールをインポートします。fs. readdirSync を使用して、削除したいディレクトリ内のすべてのファイル名のリストを取得します。...