在Javascript中,如何在添加数组时避免NaN

在Javascript中,如何在添加数组时避免NaN,javascript,arrays,nan,Javascript,Arrays,Nan,我试图在javascript中添加两个数组的值,例如[1,2,1]+[3,2,3,4] 答案应该是4,4,4,4,但是如果我把第一个数组的长度改为4,我会得到4,4,4或4,4,NaN 我知道第四个数字需要在第一个数组中,但我不知道如果没有数字,如何告诉javascript将其设为0而不是未定义 使用isNaN确保该值在算术运算中不会计算为NaN (array1[3] || 0) + (array2[3] || 0) 这将安全地添加两个数字,这样,如果其中一个不是数字,它将被替换为0 var

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

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


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

使用
isNaN
确保该值在算术运算中不会计算为
NaN

(array1[3] || 0) + (array2[3] || 0)
这将安全地添加两个数字,这样,如果其中一个不是数字,它将被替换为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);
var a=[1,2,3,4,5];
VarB=[2,3];
var c=[];
var maxi=数学最大值(a.长度,b.长度);
对于(变量i=0;i
在上面的示例中,JavaScript将数组转换为字符串,因此结果是:

1,2,33,2,1

呜呜,一元加转换成数字,太棒了!我发现(
数字('123')
)比(
+'123'
)更清晰。
[1,2,3] + [3,2,1]
1,2,33,2,1