JavaScriptで数値の最初のn個の倍数を含む配列を作成する方法
問題
2つの数値、たとえば m と n を引数として受け取る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 を掛けている点に注意してください。
-
JavaScriptで2つの配列を逆順に対応させながら合計する方法
本記事では、2つの数値配列(例えば first と second)を受け取り、新しい配列を返す関数 reverseSum() を実装する方法を解説します。返される配列には、以下のような要素が含まれます。 1つ目の配列の先頭要素と、2つ目の配列の末尾要素の合計が、新しい配列の最初の要素になる 1つ目の配列の2番目の要素と、2つ目の配列の後ろから2番目の要素の合計が、次の要素になる(以降も同様) どちらか一方の配列の要素が先に尽きた場合は、残りの要素をそのまま新しい配列の末尾へ追加します。それでは、この関数のコードを見ていきましょう。 コード例 const first = [23, 5, 7
-
JavaScriptで入力値が数字か文字かを判定する方法【isNaN()関数の使い方】
入力された値が数字か文字(数値以外)かを判定するには、JavaScriptのisNaN()関数を使用します。この関数は、値がNaN(Not a Number:非数)である場合にtrueを返します。この特性を利用することで、ユーザーが入力した値が数値かどうかを簡単にチェックできます。 isNaN()関数とは isNaN()は「is Not a Number」の略称です。引数として渡された値が数値として解釈できない場合にtrueを、数値として解釈できる場合はfalseを返します。これにより、「入力内容が数字かどうか」をシンプルに判定できるのが特徴です。 サンプルコード 以下のコードでは、フォームの