Javascript Challenges

Even or Odd

We have the following code that should return only the odd numbers in reverse order that are in values...

(function() {
    var values = [3, 8, '15', Number.MAX_VALUE, Infinity, -23],
        oddValues = [],
        index,
        lenValues = values.length,
        isOdd = function ( value ) {
            return (value % 2) !== 0;
        };

    while(lenValues--) {
        if ( isOdd( values[lenValues] ) ) {
            oddValues.push( values[lenValues] );
        }
    }
    console.log( oddValues );
}());

...but when this code is executed we get [-23, Infinity, "15", 3].

Ah! Maybe Number.MAX_VALUE is a even number then why not substract 1 and check it again?

(function() {
    var values = [3, 8, '15', (Number.MAX_VALUE -1), Infinity, -23],
        oddValues = [],
        index,
        lenValues = values.length,
        isOdd = function ( value ) {
            return (value % 2) !== 0;
        };

    while(lenValues--) {
        if ( isOdd( values[lenValues] ) ) {
            oddValues.push( values[lenValues] );
        }
    }
    console.log( oddValues );
}());

...but when this code is executed we get [-23, Infinity, "15", 3] again.

Exercise

Correct!
False!

Please explain why Number.MAX_VALUE has not been added:

Exercise

Correct!
False!

Write the code to avoid Infinity to be added.

(function() { var values = [3, 8, '15', Number.MAX_VALUE, Infinity, -23], oddValues = [], index, lenValues = values.length, isOdd = function ( value ) { return (value % 2) !== 0; }; while(lenValues--) { if ( isOdd( values[lenValues] ) ) { oddValues.push( values[lenValues] ); } } console.log( oddValues ); }());