[英]how to add array elements in javascript?
使用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?
使用自定义的parseInt函数
function tryParseInt(str) {
var result = parseInt(str);
if(isNaN(result))
result = 0;
return result;
}
var e = tryParseInt(" ") ; //returns 0
您可以检查值,然后添加。 var n = 0;
if(!isNan(a))
n = n+a;
if(!isNan(b))
n = n+b;
或者您可以创建一个自定义方法来验证此isNan。
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;
});
如果您关心总计,则可以使用以下小技巧在添加之前检查NaN
:
var n = (a || 0) +
(b || 0) +
(c || 0) +
(d || 0) +
(e || 0) +
(f || 0) +
(g || 0);
console.log(n);
首先,要获得104的结果,这是一种简单的方法,让我们定义一个解析Integer并返回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];
或者您可以使用数组的push方法
var myArray = [];
myArray.push(a,b,c,d,e,f,g);
那么您需要遍历数组以获得结果:
result = 0;
for (index in myArray) {
result += myArray[index];
}
// result contains 104
var variable = isNaN(parseInt(value)) ? 104 : parseInt(value);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.