使用parseInt()???
将数据转换为数字后,是否可以添加包含NaN的元素这是我的代码:
var a = parseInt("10"); //returns 10
var b = parseInt("10.00"); //returns 10
var c = parseInt("10.33"); //returns 10
var d = parseInt("34 45 66") ; //returns 34
var e = parseInt(" ") ; //returns NaN
var f = parseInt("40 years"); //returns 40
var g = parseInt("He was 40"); //returns NaN
var n = a + b + c + d + e + f + g;
document.write( n);
返回NaN。我如何让它返回104?
答案 0 :(得分:1)
使用自定义parseInt函数
function tryParseInt(str) {
var result = parseInt(str);
if(isNaN(result))
result = 0;
return result;
}
var e = tryParseInt(" ") ; //returns 0
答案 1 :(得分:1)
您可以检查值然后添加。 var n = 0;
if(!isNan(a))
n = n+a;
if(!isNan(b))
n = n+b;
或者您可以创建一个自定义方法来验证这是否为。
var k = [];
k.push(a);
k.push(b);
k.push(c);
var total = 0;
var l = k.filter(function(n){ if(!isNaN(n)) return n;});
$.each(l,function() {
total += this;
});
答案 2 :(得分:1)
如果您关心总金额,可以在添加之前检查NaN
,这个小技巧:
var n = (a || 0) +
(b || 0) +
(c || 0) +
(d || 0) +
(e || 0) +
(f || 0) +
(g || 0);
console.log(n);
答案 3 :(得分:1)
首先,为了得到结果104,这是一种简单的方法,让我们定义一个解析整数并返回int值的函数或0
parseInteger = function (number) {
return parseInt(number) || 0;
}
所以你的代码将是这样的:
var a = parseInteger("10");
var b = parseInteger("10.00");
var c = parseInteger("10.33");
var d = parseInteger("34 45 66") ;
var e = parseInteger(" ") ;
var f = parseInteger("40 years");
var g = parseInteger("He was 40");
var n = a + b + c + d + e + f + g;
document.write(n);
仍然会返回104
但是,要使用和数组,您需要做的就是使用文字语法
var n = [a,b,c,d,e,f,g];
或者您可以使用数组的推送方法
var myArray = [];
myArray.push(a,b,c,d,e,f,g);
然后你需要循环你的数组来得到结果:
result = 0;
for (index in myArray) {
result += myArray[index];
}
// result contains 104
答案 4 :(得分:1)
var variable = isNaN(parseInt(value)) ? 104 : parseInt(value);