I have a var a;
Its value can be NaN, null and any +ve/-ve number including 0.
I require a condition which filters out all the values of a such that
I had the same problem some weeks ago, I solved it with:
if(~~Number(test1)>0) {
//...
}
http://jsfiddle.net/pT7pp/2/
Ohk ...But i actually found the ans .. it is so Simple .
parseInt(null) = NaN.
So if(parseInt(a)>=0){} would do ...Yayyee
This seems to work well:
if (parseFloat(x) === Math.sqrt(x*x))...
Test:
isPositive = function(x) { return parseFloat(x) === Math.sqrt(x*x) }
a = [null, +"xx", -100, 0, 100]
a.forEach(function(x) { console.log(x, isPositive(x))})
NaN is not >= 0, so the only exclusion you need to make is for null:
if (a !== null && a >= 0) {
...
}
typeof x == "number" && x >= 0
This works as follows:
null -- typeof null == "object" so first part of expression returns falseNaN -- typeof NaN == "number" but NaN is not greater than, less than or equal to any number including itself so second part of expression returns falsenumber -- any other number greater than or equal to zero the expression returns trueSince you tagged jQuery, take a look at $.isNumeric()
if($.isNumeric(a) && a >= 0)