33 lines
		
	
	
		
			No EOL
		
	
	
		
			792 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			No EOL
		
	
	
		
			792 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
---
 | 
						|
tags:
 | 
						|
  - Data_Structures
 | 
						|
  - patterns
 | 
						|
---
 | 
						|
 | 
						|
# Frequency counters
 | 
						|
 | 
						|
Here is a concise method for counting the number instances of each type of array element.
 | 
						|
 | 
						|
```js
 | 
						|
function frequencyCounter(...inputArr) {
 | 
						|
    let counter = {};
 | 
						|
     inputArr.forEach((item) => {
 | 
						|
    // If item doesn't exist as a key in the counter, make 0 the val and add one
 | 
						|
    // If item already exists as key in the counter, increment it by one
 | 
						|
    counter[item] = (counter[item] || 0) + 1
 | 
						|
  });  
 | 
						|
  return counter; 
 | 
						|
}
 | 
						|
```
 | 
						|
 | 
						|
An application of this would be checking for duplicates in an array:
 | 
						|
 | 
						|
```js
 | 
						|
const testArr = [1, 4, 3, 3];
 | 
						|
const arrayFreq = frequencyCounter(testArr);
 | 
						|
let count = Object.values(arrayFreq)
 | 
						|
 | 
						|
if (count.some((ele) => ele > 1)) {
 | 
						|
    return 'There are duplicates';
 | 
						|
} else return 'No duplicates'; 
 | 
						|
``` |