【JavaScript】指定した数の倍数からなる配列を生成する方法
本記事では、2つの数値 m と n を引数として受け取り、m の倍数を先頭から n 個格納した配列を返すJavaScript関数の実装方法を解説します。
要件の確認
たとえば、入力として 4 と 6 が渡された場合、4の倍数を6個並べた次のような配列が期待される出力になります。
const output = [4, 8, 12, 16, 20, 24];
forループを使った実装
まずは、基本的な for ループを使用したシンプルなコード例です。
const num1 = 4;
const num2 = 6;
const multiples = (num1, num2) => {
const res = [];
for (let i = num1; i <= num1 * num2; i += num1) {
res.push(i);
}
return res;
};
console.log(multiples(num1, num2));コードの解説
- ループ変数
iをnum1(=4)で初期化し、繰り返しごとにnum1ずつ加算していきます。 iがnum1 * num2(=4×6=24)以下である間、その値を配列resに順番に追加します。- これにより 4, 8, 12, … という倍数が格納され、最終的に6個の要素を持つ配列が完成します。
出力結果
上記のコードを実行すると、コンソールには次のように表示されます。
[ 4, 8, 12, 16, 20, 24 ]
Array.fromを使った別の実装方法
よりモダンで簡潔な書き方としては、Array.from() メソッドを活用する方法もあります。
const multiples = (m, n) =>
Array.from({ length: n }, (_, index) => m * (index + 1));
console.log(multiples(4, 6));
// [ 4, 8, 12, 16, 20, 24 ]この方法では、長さ n の新しい配列を生成し、各インデックスに対して m * (index + 1) を計算するだけで、同じ結果を1行で得ることができます。可読性が高く、意図も伝わりやすいので、実務でもおすすめの書き方です。
まとめ
- for ループで初期値と増分を制御すれば、誰にとっても直感的な実装になります。
Array.from()を使えば、より宣言的かつ短いコードで同様の処理を実現できます。- 用途やチームのコーディング規約に応じて、使いやすい方法を選択しましょう。
-
【初心者向け】JavaScriptのreverse()メソッドで配列を逆順にする方法
JavaScriptのreverse()メソッドは、配列の要素を元の順序と逆順に入れ替えるための便利な関数です。このメソッドを呼び出すと、配列の最初の要素が最後に、最後の要素が最初に移動し、配列全体が反転されます。reverse()メソッドの基本reverse()は配列そのものを変更する「破壊的メソッド」である点に注意してください。つまり、元の配列の順序が直接書き換えられます。元の配列を保持したい場合は、あらかじめslice()やスプレッド構文([...arr])などでコピーを作成してからreverse()を使用するのがおすすめです。サンプルコード以下は、ボタンをクリックすると配列の要素が逆順
-
JavaScriptにおける配列の分割代入(Destructuring)の基本と使い方
分割代入(Destructuring)とは、配列から値を取り出して個別の変数に展開するための構文です。ES2015(ES6)で導入されたこの機能を使うと、配列の各要素を簡潔かつ読みやすく変数に割り当てることができます。 配列の分割代入のサンプルコード 以下は、JavaScriptで配列の分割代入を行うコード例です。 <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8" /> <meta name="viewport&quo