Syntax error JavaScript Determine the array having majority element and return TRUE if its in the same array

JavaScript Determine the array having majority element and return TRUE if its in the same array



We are required to write a JavaScript function that takes in an array of numbers with repetitive values and returns the number that appears for more than (n/2) number of times where n is the length of the array. If there is no such element in the array, our function should return false

Let's write the code for this function −

Example

const arr = [12, 5, 67, 12, 4, 12, 4, 12, 6, 12, 12];
const arr1 = [3, 565, 7, 23, 87, 23, 3, 65, 1, 3, 6, 7];
const findMajority = arr => {
   let maxChar = -Infinity, maxCount = 1;
   // this loop determines the possible candidates for majorityElement
   for(let i = 0; i < arr.length; i++){
      if(maxChar !== arr[i]){
         if(maxCount === 1){
            maxChar = arr[i];
         } 0else {
            maxCount--;
      };
      } else {
         maxCount++;
      };
   };
   // this loop actually checks for the candidate to be the majority
   element
   const count = arr.reduce((acc, val) => maxChar===val ? ++acc : acc, 0);
   return count > arr.length / 2;
};
console.log(findMajority(arr));
console.log(findMajority(arr1));

Output

The output in the console will be −

true
false
Updated on: 2020-08-31T07:09:46+05:30

157 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements