There's a potential bug.
-21 will fail both isOdd and isEven function.
-21
isOdd
isEven
The function isOdd should be
const isOdd = n => n % 2 !== 0
Since negative odd numbers mod 2 equals to -1 instead of 1.
-1
1
Whoa.... you've just caught years worth of bugs I have possibly created... 😅
Thank you @Hao for finding the issue. 😀 I really didn't think that thru. 👍
Here is the updated code
let isEven = n => n % 2 === 0 let isOdd = n => n % 2 !== 0 const findOutlier = arr => { const odds = arr.filter(isOdd) const evens = arr.filter(isEven) return odds.length < evens.length ? odds[0] : evens[0] } [ [2, 4, 0, 100, 4, 11, 2602, 36], [160, 3, 1719, 19, 11, 13, -21], [4, 8, 15, 16, 24, 42], [16, 6, 40, 66, 68, 28], [-21, 1, 2, 3] ].map(findOutlier)
I think I would probably use !isEven next time 😎
!isEven
Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment's permalink.
Hide child comments as well
Confirm
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
There's a potential bug.
-21
will fail bothisOdd
andisEven
function.The function
isOdd
should beSince negative odd numbers mod 2 equals to
-1
instead of1
.Whoa.... you've just caught years worth of bugs I have possibly created... 😅
Thank you @Hao for finding the issue. 😀
I really didn't think that thru. 👍
Here is the updated code
I think I would probably use
!isEven
next time 😎