Get the number of true/false values in an array using JavaScript?

In JavaScript, you can count true/false values in arrays using various methods. Here are several approaches to accomplish this task.

Using filter() Method (Recommended)

The most efficient approach is using the filter() method to count values based on conditions:

let obj = [
    { isMarried: true },
    { isMarried: false },
    { isMarried: true },
    { isMarried: true },
    { isMarried: false }
];

// Count true values
let trueCount = obj.filter(item => item.isMarried === true).length;

// Count false values  
let falseCount = obj.filter(item => item.isMarried === false).length;

console.log("Number of true values: " + trueCount);
console.log("Number of false values: " + falseCount);
Number of true values: 3
Number of false values: 2

Using reduce() Method

You can use reduce() to count both values in a single pass:

let obj = [
    { isMarried: true },
    { isMarried: false },
    { isMarried: true },
    { isMarried: true },
    { isMarried: false }
];

let counts = obj.reduce((acc, item) => {
    if (item.isMarried === true) {
        acc.trueCount++;
    } else {
        acc.falseCount++;
    }
    return acc;
}, { trueCount: 0, falseCount: 0 });

console.log("Number of true values: " + counts.trueCount);
console.log("Number of false values: " + counts.falseCount);
Number of true values: 3
Number of false values: 2

Using Traditional for Loop

The original approach using for loops is still valid for older JavaScript environments:

let obj = [
    { isMarried: true },
    { isMarried: false },
    { isMarried: true },
    { isMarried: true },
    { isMarried: false }
];

function numberOfTrueValues(obj) {
    let counter = 0;
    for (let index = 0; index < obj.length; index++) {
        if (obj[index].isMarried === true) {
            counter++;
        }
    }
    return counter;
}

function numberOfFalseValues(obj) {
    let counter = 0;
    for (let 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));
Number of true values: 3
Number of false values: 2

Counting Boolean Values Directly

If you have an array of direct boolean values instead of objects:

let booleanArray = [true, false, true, true, false, true];

let trueCount = booleanArray.filter(value => value === true).length;
let falseCount = booleanArray.filter(value => value === false).length;

console.log("Number of true values: " + trueCount);
console.log("Number of false values: " + falseCount);
Number of true values: 4
Number of false values: 2

Comparison

Method Performance Readability Best For
filter() Good Excellent Modern JavaScript
reduce() Best Good Single pass counting
for loop Good Fair Legacy compatibility

Conclusion

Use filter() for readable code or reduce() for optimal performance. The traditional for loop approach works well in older JavaScript environments.

Updated on: 2026-03-15T23:19:00+05:30

2K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements