8

我正在尝试在javascript中添加两个数组的值,例如。[1,2,1] + [3,2,3,4]

答案应该是 4,4,4,4 但如果我将第一个数组长度更改为 4,我会得到 4,4,4 或 4,4,4,NaN。

我知道第 4 个数字需要在第一个数组中,但我不知道如何告诉 javascript 将其设为 0,而不是在没有数字时未定义。

4

4 回答 4

9

用于isNaN确保值不会NaN在算术运算中计算为。

这将安全地添加两个数字,如果其中一个不是数字,它将被 0 替换。

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

如果您怀疑 a 或 b 可能是字符串而不是数字("2"而不是2),则必须在添加之前将其转换为数字。您可以使用一元+来执行此操作。

var c = (isNaN(a) ? 0 : +a) + (isNaN(b) ? 0 : +b);
于 2009-12-11T00:41:36.660 回答
6
(array1[3] || 0) + (array2[3] || 0)
于 2009-12-11T00:35:38.150 回答
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) );
}
于 2009-12-11T00:45:04.150 回答
0
[1,2,3] + [3,2,1]

在上面的示例中,JavaScript 无论如何都会将数组转换为字符串,因此结果是:

1,2,33,2,1
于 2010-05-22T06:23:36.053 回答