JavaScriptで配列内の基準値より上・下の要素数を数える方法
本記事では、指定した数値を基準として、配列内の各要素がその値より「下(未満)」か「上(以上)」のどちらに該当するかをカウントする関数を、JavaScriptで作成する方法を解説します。
まず、次のような数値の配列を用意します。
const array = [54,54,65,73,43,78,54,54,76,3,23,78];
例えば、基準値が60だった場合、「60未満」の要素は5つ存在します。
54, 54, 43, 3, 23
同様に、「60以上」の要素も5つ存在します。
65, 73, 78, 76, 78
実装コード
実際のコードは以下の通りです。Array.prototype.reduce()を使うことで、ループ処理を1回で完結させながら、2種類のカウントを同時に集計できます。
const array = [54,54,65,73,43,78,54,54,76,3,23,78];
const belowParNumbers = (arr, num) => {
return arr.reduce((acc, val) => {
const legend = ['par', 'below'];
const isBelow = val < num;
acc[legend[+isBelow]]++;
return acc;
}, {
below: 0,
par: 0
});
};
console.log(belowParNumbers(array, 50));
console.log(belowParNumbers(array, 60));
console.log(belowParNumbers(array, 70));コードの仕組み
この関数のポイントは以下の通りです。
・初期値として{ below: 0, par: 0 }というオブジェクトをアキュムレータに設定します。
・各要素についてval < numで比較し、真偽値を取得します。
・単項プラス演算子+で真偽値を数値化(true→1、false→0)し、配列legendのインデックスとして利用します。
・結果的に、基準値未満の要素はbelowへ、基準値以上の要素はparへ振り分けられてカウントされます。
出力結果
このコードを実行すると、コンソールには次のように出力されます。
{ below: 3, par: 9 }
{ below: 7, par: 5 }
{ below: 8, par: 4 }基準値50の場合は未満が3個・以上が9個、基準値60では未満7個・以上5個、基準値70では未満8個・以上4個となっており、正しく分類できていることが確認できます。
-
【初心者向け】JavaScriptのArray.from()メソッドの使い方を実例で解説
JavaScript の Array.from() メソッドは、length プロパティを持つオブジェクト(配列風オブジェクト)や、文字列・Map・Set などの反復可能(イテラブル)なオブジェクトから、新しい Array オブジェクトを生成して返すためのメソッドです。元のオブジェクトは変更されず、常に新しい配列インスタンスが返されます。 基本構文 Array.from(obj, mapFunction, val) パラメータの説明 obj:配列へ変換したい対象のオブジェクト。配列風オブジェクト(length プロパティを持つもの)や反復可能なオブジェクトを指定します。 mapFunctio
-
JavaScriptのArray.from()メソッドとは?使い方と実例をわかりやすく解説
Array.from()メソッドは、配列風オブジェクト(array-like)や反復可能オブジェクト(iterable)から、新しい配列オブジェクトを作成するための便利なメソッドです。文字列、Map、Set、NodeListなど、さまざまなデータを手軽に配列へ変換できます。 Array.from()の基本的な動作 例えば、文字列「HelloWorld」に対してArray.from()を使用すると、1文字ずつ分割された新しい配列が生成されます。以下に実際のコード例を示します。 サンプルコード <!DOCTYPE html> <html lang="ja"&g