2009-12-11 80 views
7

我正在嘗試在javascript中添加兩個數組的值。 [1,2,1] + [3,2,3,4]在Javascript中,如何避免在添加數組時添加NaN

答案應該是4,4,4,4,但我要麼4,4,4或4,4,4, NaN如果我將第一個數組長度更改爲4.

我知道第四個數字需要在第一個數組中,但我無法弄清楚如何告訴javascript使其0,而不是如果沒有數。

回答

9

使用isNaN,保證值不會算術運算評估爲NaN

這將安全地添加兩個數字,例如,如果其中一人是不是一個數字,它將被0

var c = (isNaN(a) ? 0 : a) + (isNaN(b) ? 0 : b); 

如果您懷疑A或B可能是一個字符串,而不是數量取代("2"而不是2),則必須在添加它之前將其轉換爲數字。你可以使用Unary +來做到這一點。

var c = (isNaN(a) ? 0 : +a) + (isNaN(b) ? 0 : +b); 
+0

活泉,一元正轉換爲數字,真棒​​! – akuhn 2009-12-11 00:45:25

1
var a = [ 1, 2, 3, 4, 5 ]; 
var b = [ 2 , 3]; 
var c = []; 
var maxi = Math.max(a.length, b.length); 
for (var i = 0; i < maxi; i++) { 
    c.push((a[i] || 0) + (b[i] || 0)); 
} 
0
[1,2,3] + [3,2,1] 

在上面的例子中,JavaScript中的數組轉換爲字符串反正這樣的結果是:

1,2,33,2,1