JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptで数値の最初のn個の倍数を含む配列を作成する方法

問題

2つの数値、たとえば mn を引数として受け取るJavaScriptの関数を作成する必要があります。

この関数は、m の最初の n 個の倍数(自然数倍)を要素として持つ配列を構築し、返すものとします。

例えば、m = 6、n = 14 の場合、期待される出力は以下の通りです。

[ 6, 12, 18, 24, 30, 36, 42, 48, 54, 60, 66, 72, 78, 84 ]

アプローチ

この問題はシンプルです。1 から n までの各整数 i に対して「m × i」を計算し、その結果を順番に空の配列へ格納していきます。最後にその配列を返せば完成です。

コード例

以下が実際のコードです。

const m = 6;
const n = 14;
const firstNMultiple = (m = 1, n = 1) => {
   const res = [];
   for(let i = 1; i <= n; i++){
      const multiple = m * i;
      res.push(multiple);
   };
   return res;
};
console.log(firstNMultiple(m, n));

コードの解説

  • まず結果を格納するための空の配列 res を用意します。
  • for ループでカウンタ変数 i を 1 から n まで順に処理します。
  • ループ内で m * i を計算して倍数を求め、push() メソッドで配列に追加します。
  • ループ終了後、完成した配列を呼び出し元に返します。

出力

コンソールには次のように表示されます。

[ 6, 12, 18, 24, 30, 36, 42, 48, 54, 60, 66, 72, 78, 84 ]

別の書き方:Array.from() を活用する方法

よりモダンで簡潔な実装としては、Array.from() を利用する方法もあります。

const firstNMultiple = (m = 1, n = 1) =>
   Array.from({ length: n }, (_, i) => m * (i + 1));

console.log(firstNMultiple(6, 14));
// [ 6, 12, 18, 24, 30, 36, 42, 48, 54, 60, 66, 72, 78, 84 ]

Array.from() の第 2 引数にマッピング関数を渡すことで、明示的なループを書かずに同じ結果を得られます。インデックス i は 0 から始まるため、i + 1 を掛けている点に注意してください。

  1. JavaScriptで2つの配列を逆順に対応させながら合計する方法

    本記事では、2つの数値配列(例えば first と second)を受け取り、新しい配列を返す関数 reverseSum() を実装する方法を解説します。返される配列には、以下のような要素が含まれます。 1つ目の配列の先頭要素と、2つ目の配列の末尾要素の合計が、新しい配列の最初の要素になる 1つ目の配列の2番目の要素と、2つ目の配列の後ろから2番目の要素の合計が、次の要素になる(以降も同様) どちらか一方の配列の要素が先に尽きた場合は、残りの要素をそのまま新しい配列の末尾へ追加します。それでは、この関数のコードを見ていきましょう。 コード例 const first = [23, 5, 7

  2. JavaScriptで入力値が数字か文字かを判定する方法【isNaN()関数の使い方】

    入力された値が数字か文字(数値以外)かを判定するには、JavaScriptのisNaN()関数を使用します。この関数は、値がNaN(Not a Number:非数)である場合にtrueを返します。この特性を利用することで、ユーザーが入力した値が数値かどうかを簡単にチェックできます。 isNaN()関数とは isNaN()は「is Not a Number」の略称です。引数として渡された値が数値として解釈できない場合にtrueを、数値として解釈できる場合はfalseを返します。これにより、「入力内容が数字かどうか」をシンプルに判定できるのが特徴です。 サンプルコード 以下のコードでは、フォームの