Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

The integers in the array are either entirely odd or entirely even except for a single integer. Retrieve this single integer. JS

You are given an array (which will have a length of at least 3, but could be very large) containing integers. The integers in the array are either entirely odd or entirely even except for a single integer N. Write a method that takes the array as an argument and returns N.

For example: [2, 4, 0, 100, 4, 11, 2602, 36] Should return: 11

My test cases that need to work:

Test.assertEquals(findOutlier([0, 1, 2]), 1)
Test.assertEquals(findOutlier([1, 2, 3]), 2)
Test.assertEquals(findOutlier([2,6,8,10,3]), 3)
Test.assertEquals(findOutlier([0,0,3,0,0]), 3)
Test.assertEquals(findOutlier([1,1,0,1,1]), 0)

My code so far, that doesn't seem to work:

function findOutlier(integers){
    var evens = [];
    var odds = [];
    for (var i = 0; i < integers.length; i++) {
        if (integers[i] % 2) {
            evens.push(integers[i]);
        } else {
            odds.push(integers[i]);
        }
    }
    var elen = evens.length;
    var olen = odds.length

    if (elen > olen) {
        return odds;
    } else {
        return evens;
    }
}

What do I need to change with this code please?


1 Answers

I see 2 possible modification : 1) Return the single value in your array and not all the array

return evens[0];

Change your if to check if the modulo == 0 ( if the remainder = 0 it is an even number)

if ((integers[i] % 2) == 0) 

-

function findOutlier(integers){
   var evens = [];
   var odds = [];
   for (var i = 0; i < integers.length; i++) 
   {
       if ((integers[i] % 2) == 0) 
       {
           evens.push(integers[i]);
       } 
       else 
       {
           odds.push(integers[i]);
       }
   }
   var elen = evens.length;
   var olen = odds.length;

   if (elen > olen)
   {
       return odds[0];
   } 
   else 
   {
       return evens[0];
   }
}
like image 172
Mr Rubix Avatar answered Nov 01 '25 11:11

Mr Rubix



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!