Open In App

Count occurrences of all items in an array in JavaScript

Last Updated : 01 Feb, 2024
Improve
Improve
Like Article
Like
Save
Share
Report

We will see how to count occurrences of all items in an array in JavaScript. One of the most common methods of doing this is by using the traditional for loop. In JavaScript, we have another modern approach to iterate the array which is by using the forEach method.

Example:

Input: [1,3,4,3,4,1,3,3,3,4]
Output: {"1": 2, "3" : 5, "4" 3}

Counting the occurrences of all the items in an array can be done in the following ways:

Approach 1: Using the Javascript forEach() method

The arr.forEach() method calls the provided function once for each element of the array. The provided function may perform any kind of operation on the elements of the given array. 

Syntax:

array.forEach(callback(element, index, arr), thisValue)

Example: In this example, we will iterate over the elements of an array using the forEach() method, count the number of occurrences of all the elements of the array, and print them in the console.

Javascript




let arr = [
    'geeks', 2, 'geeks', 2, 'Javascript', 4,
    'Javascript', 5, 'for', 6, 'Javascript', 1,
    'for', 5, 7, 8, 'for'
];
 
const counter = {};
 
arr.forEach(ele => {
    if (counter[ele]) {
        counter[ele] += 1;
    } else {
        counter[ele] = 1;
    }
});
 
console.log(counter)


Output

{
  '1': 1,
  '2': 2,
  '4': 1,
  '5': 2,
  '6': 1,
  '7': 1,
  '8': 1,
  geeks: 2,
  Javascript: 3,
  for: 3
}

Approach 2: Using reduce() method

The Javascript arr.reduce() method is used to reduce the array into a single value and executes the provided function for each value of the array (from left-to-right) and the return value of the function is stored in an accumulator. 

Syntax:

array.reduce( 
function(total, currentValue, currentIndex, arr),
initialValue
)

Example: In this example, we will iterate over the elements of an array using the reduce() method and count the number of occurrences of all the elements of the array and print them in the console.

Javascript




const arr = [
    'geeks', 2, 'geeks', 2, 'Javascript', 4,
    'Javascript', 5, 'for', 6, 'Javascript', 1,
    'for', 5, 7, 8, 'for'
];
 
let count = arr.reduce(function (value, value2) {
    return (
        value[value2] ? ++value[value2] :(value[value2] = 1),
        value
    );
}, {});
 
console.log(count);


Output

{
  '1': 1,
  '2': 2,
  '4': 1,
  '5': 2,
  '6': 1,
  '7': 1,
  '8': 1,
  geeks: 2,
  Javascript: 3,
  for: 3
}

Approach 3: Using filter() method

The JavaScript Array filter() Method is used to create a new array from a given array consisting of only those elements from the given array which satisfy a condition set by the argument method. 

Syntax:

array.filter(callback(element, index, arr), thisValue)

Example: In this example, we will use the array filter() method to check the occurrences of the elements of the array and print them in the console.

Javascript




const arr = [
    'geeks', 2, 'geeks', 2, 'Javascript', 4,
    'Javascript', 5, 'for', 6, 'Javascript', 1,
    'for', 5, 7, 8, 'for'
];
 
const itemCounter = (value, index) => {
    return value.filter((x) => x == index).length;
};
 
console.log(itemCounter(arr, 'geeks'))


Output

2

Approach 4: Using for…of loop

The for…of loop iterates over the iterable objects (like Array, Map, Set, arguments object, …, etc), invoking a custom iteration hook with statements to be executed for the value of each distinct property.

Syntax:

for ( variable of iterableObjectName) {
...
}

Example: In this example, we will iterate over the elements of an array using the for…of loop and count the number of occurrences of all the elements of the array and print them in the console.

Javascript




const arr = [
    'geeks', 2, 'geeks', 2, 'Javascript', 4,
    'Javascript', 5, 'for', 6, 'Javascript', 1,
    'for', 5, 7, 8, 'for'
];
 
const count = {};
 
for (let ele of arr) {
    if (count[ele]) {
        count[ele] += 1;
    } else {
        count[ele] = 1;
    }
}
 
console.log(count);


Output

{
  '1': 1,
  '2': 2,
  '4': 1,
  '5': 2,
  '6': 1,
  '7': 1,
  '8': 1,
  geeks: 2,
  Javascript: 3,
  for: 3
}

Approach 5: Using Lodash _.frequencies() Method

In this approach, we are using the _.frequencies() method for calculating the occurance of all elements in the given array.

Example: In this example we are using Lodash library for solving this problem.

Javascript




// Defining underscore lodash variable
let _ = require('lodash-contrib');
 
// Array
let array = ["Geeks", "Geeks", "GFG",
    "Computer_Science_Portal",
    "Geeks", "GFG"];
 
let obj = _.frequencies(array);
 
// Printing object
console.log("Original Array : ", array);
console.log("Frequency of elements : ", obj);


Output:

Original Array : [“Geeks”, “Geeks”, “GFG”, “Computer_Science_Portal”, “Geeks”, “GFG”]
Frequency of elements : Object {Computer_Science_Portal: 1, GFG: 2, Geeks: 3}


Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads