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

Jon*_*nas 7 javascript arrays nan

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

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

我知道第四个数字需要在第一个数组中,但我无法弄清楚如何告诉javascript使它为0而不是未定义如果没有数字.

Che*_*try 9

使用isNaN,以确保价值不计算为NaN在算术运算.

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

var c = (isNaN(a) ? 0 : a) + (isNaN(b) ? 0 : b);
Run Code Online (Sandbox Code Playgroud)

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

var c = (isNaN(a) ? 0 : +a) + (isNaN(b) ? 0 : +b);
Run Code Online (Sandbox Code Playgroud)


Cha*_*ion 6

(array1[3] || 0) + (array2[3] || 0)
Run Code Online (Sandbox Code Playgroud)