我正在尝试在javascript中添加两个数组的值,例如。 [1,2,1] + [3,2,3,4]
答案应该是4,4,4,4,但如果我将第一个数组长度改为4,我要么得到4,4,4或4,4,4,NaN。
我知道第四个数字需要在第一个数组中,但我无法弄清楚如何告诉javascript使它为0而不是未定义如果没有数字。
答案 0 :(得分: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);
答案 1 :(得分:6)
(array1[3] || 0) + (array2[3] || 0)
答案 2 :(得分: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) );
}
答案 3 :(得分:0)
[1,2,3] + [3,2,1]
在上面的示例中,JavaScript无论如何都将数组转换为字符串,结果是:
1,2,33,2,1