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

时间:2015-04-15 10:50:33

标签: javascript parseint

使用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?

5 个答案:

答案 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);

Fiddle

答案 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);