1からNまでの配列を作成する方法:スプレッド構文とMath.randomを使う
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