Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
Selected Reading
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.
Advertisements
