File tree Expand file tree Collapse file tree 1 file changed +13
-9
lines changed Expand file tree Collapse file tree 1 file changed +13
-9
lines changed Original file line number Diff line number Diff line change 8
8
*/
9
9
const parityOutlier = ( integers ) => {
10
10
// define new containers
11
- const odds = [ ] // store odd number(s)
12
- const evens = [ ] // store even number(s)
11
+ let odds_count = 0 // define counter for odd number(s)
12
+ let evens_count = 0 // define counter for even number(s)
13
+ let odd , even
13
14
14
- for ( let i = 0 ; i < integers . length ; i ++ ) {
15
- if ( ! Number . isInteger ( integers [ i ] ) ) { // detect non-integer elements
15
+ for ( let e of integers ) {
16
+ if ( ! Number . isInteger ( e ) ) { // detect non-integer elements
16
17
return null
17
- } else if ( integers [ i ] % 2 === 0 ) { // an even number
18
- evens . push ( integers [ i ] )
18
+ } else if ( e % 2 === 0 ) { // an even number
19
+ even = e
20
+ evens_count ++
19
21
} else { // an odd number
20
- odds . push ( integers [ i ] )
22
+ odd = e ;
23
+ odds_count ++
21
24
}
22
25
}
23
26
24
- if ( odds . length === 0 || evens . length === 0 ) return null
27
+ if ( odds_count === 0 || evens_count === 0 ) return null // array has only odd/even number(s)
28
+ else if ( odds_count > 1 && evens_count > 1 ) return null // array has more than one even and odd number
25
29
26
- return odds . length === 1 ? odds [ 0 ] : evens [ 0 ]
30
+ return odds_count === 1 ? odd : even
27
31
}
28
32
29
33
export { parityOutlier }
You can’t perform that action at this time.
0 commit comments