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

发布于 2024-08-14 03:18:29 字数 196 浏览 7 评论 0原文

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

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

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

I'm trying to add the values of two arrays in javascript eg. [1,2,1] + [3,2,3,4]

The answer should be 4,4,4,4 but I'm either getting 4,4,4 or 4,4,4,NaN if I change the 1st array length to 4.

I know a 4th number needs to be in the 1st array, but i can't figure out how to tell javascript to make it 0 rather then undefined if there is no number.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

锦上情书 2024-08-21 03:18:29

使用 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);

Use isNaN to ensure the value does not evaluate to NaN in arithmetic operations.

This will safely add two numbers such that if one of them is not a number, it will be substituted with 0.

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

If you suspect that either a or b could be a string instead of number ("2" instead of 2), you have to convert it into number before adding it. You can use a Unary + to do it.

var c = (isNaN(a) ? 0 : +a) + (isNaN(b) ? 0 : +b);
jJeQQOZ5 2024-08-21 03:18:29
(array1[3] || 0) + (array2[3] || 0)
(array1[3] || 0) + (array2[3] || 0)
死开点丶别碍眼 2024-08-21 03:18:29
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) );
}
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) );
}
等风来 2024-08-21 03:18:29
[1,2,3] + [3,2,1]

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

1,2,33,2,1
[1,2,3] + [3,2,1]

In the above example, JavaScript converts the arrays to strings anyway so the result is:

1,2,33,2,1
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文