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

JavaScriptで配列内のtrue/falseの値の個数を取得する方法

配列内の真偽値(true/false)の個数をカウントする

JavaScriptでは、オブジェクトの配列に含まれる真偽値(true/false)の個数を調べたいケースがよくあります。この記事では、forループを使った基本的な方法と、filterメソッドを使ったより簡潔な方法の2つを紹介します。

基本の実装:forループでカウントする

まずは、配列内のtrueとfalseの値をそれぞれカウントするサンプルコードを見てみましょう。

var obj = [
    {
        isMarried: true
    },
    {
        isMarried: false
    },
    {
        isMarried: true
    },
    {
        isMarried: true
    },
    {
        isMarried: false
    }
]
function numberOfTrueValues(obj) {
    var counter = 0;
    for (var index = 0; index < obj.length; index++) {
        if (obj[index].isMarried === true) {
            counter++;
        }
    }
    return counter;
}
function numberOfFalseValues(obj) {
    var counter = 0;
    for (var index = 0; index < obj.length; index++) {
        if (obj[index].isMarried === false) {
            counter++;
        }
    }
    return counter;
}
console.log("Number Of true values=" + numberOfTrueValues(obj));
console.log("Number Of false values=" + numberOfFalseValues(obj));

上記のコードでは、isMarriedプロパティを持つオブジェクトの配列を定義しています。numberOfTrueValues関数とnumberOfFalseValues関数は、それぞれ配列を先頭から順にループ処理し、厳密等価演算子(===)でプロパティの値がtrueまたはfalseと一致した場合にカウンタを1ずつ増やしていきます。最後に、集計したカウント値をreturn文で返します。

プログラムの実行方法

Node.jsで上記のプログラムを実行するには、ターミナルで以下のコマンドを使用します。

node fileName.js.

ここでは、ファイル名をdemo318.jsとして保存しています。

出力結果

プログラムを実行すると、コンソールに以下のような出力が表示されます。

PS C:\Users\Amit\javascript-code> node demo318.js
Number Of true values=3
Number Of false values=2

配列には5つのオブジェクトが含まれており、そのうちisMarriedがtrueになっているのは3件、falseになっているのは2件であることが確認できます。

補足:filterメソッドを使ったより簡潔な書き方

モダンなJavaScriptでは、配列のfilterメソッドを使うことで、同じ処理をより短く直感的に書くことができます。

const trueCount = obj.filter(item => item.isMarried === true).length;
const falseCount = obj.filter(item => item.isMarried === false).length;

console.log("Number Of true values=" + trueCount);
console.log("Number Of false values=" + falseCount);

filterメソッドは、条件に一致する要素だけを抜き出した新しい配列を返すため、そのlengthプロパティを参照すれば該当件数がすぐに分かります。可読性が高くバグも起きにくいため、実際の開発現場ではこちらの書き方が推奨されることが多いです。

  1. JavaScriptのArray.values()メソッドとは?使い方とサンプルコードを徹底解説

    JavaScriptのArray.values()メソッドとは? JavaScriptのArray.values()メソッドは、対象の配列に含まれるすべての値を格納したイテレーターオブジェクトを返します。ES2015(ES6)以降で利用可能なこのメソッドは、for...ofループやスプレッド構文([...arr])と組み合わせることで、配列の各要素を効率的に取り出せます。 なお、keys()やentries()がインデックス情報も一緒に返すのに対し、values()は純粋に「値」だけを順番に提供する点が大きな特徴です。 基本構文 arr.values() 引数は不要で、戻り値として新しいArr

  2. 【JavaScript】配列内のネストされたオブジェクトの値を合計する方法

    この記事では、JavaScriptを使って、配列内にネストされた(入れ子構造の)オブジェクトの値を合計する方法を解説します。サンプルコードでは、JSONデータの複数階層に格納された数値(costNum)を順番に取り出し、その合計をブラウザ上に表示します。 コード例 <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=d