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

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個となっており、正しく分類できていることが確認できます。

  1. 【初心者向け】JavaScriptのArray.from()メソッドの使い方を実例で解説

    JavaScript の Array.from() メソッドは、length プロパティを持つオブジェクト(配列風オブジェクト)や、文字列・Map・Set などの反復可能(イテラブル)なオブジェクトから、新しい Array オブジェクトを生成して返すためのメソッドです。元のオブジェクトは変更されず、常に新しい配列インスタンスが返されます。 基本構文 Array.from(obj, mapFunction, val) パラメータの説明 obj:配列へ変換したい対象のオブジェクト。配列風オブジェクト(length プロパティを持つもの)や反復可能なオブジェクトを指定します。 mapFunctio

  2. JavaScriptのArray.from()メソッドとは?使い方と実例をわかりやすく解説

    Array.from()メソッドは、配列風オブジェクト(array-like)や反復可能オブジェクト(iterable)から、新しい配列オブジェクトを作成するための便利なメソッドです。文字列、Map、Set、NodeListなど、さまざまなデータを手軽に配列へ変換できます。 Array.from()の基本的な動作 例えば、文字列「HelloWorld」に対してArray.from()を使用すると、1文字ずつ分割された新しい配列が生成されます。以下に実際のコード例を示します。 サンプルコード <!DOCTYPE html> <html lang="ja"&g