繁体   English   中英

如何在javascript中添加数组元素?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM