Grouping of same kind of numbers in JavaScript


We have an array of numbers like this −

const arr = [-1,-2,-1,0,-1,-2,-1,-2,-1,0,1,0];

We are required to write a JavaScript function that counts the consecutive groups of nonnegative (positives and 0) numbers in the array.

Like here we have consecutive non negatives from index 3 to 3 (only one element, but still a cluster) which forms one group and then from 9 to end of array forms the second group.

So, for this array, the function should return 2.

Therefore, let’s write the code for this function −

Example

The code for this will be −

const arr = [-1,-2,-1,0,-1,-2,-1,-2,-1,0,1,0];
const positiveClusters = arr => {
   return arr.reduce((acc, val, ind) => {
      if(val >= 0 && (arr[ind+1] < 0 || typeof arr[ind+1] === 'undefined')){
         acc++;
      };
      return acc;
   }, 0);
};
console.log(positiveClusters(arr));

Output

The output in the console will be −

2

Updated on: 19-Oct-2020

103 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements