最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

In Javascript, how to avoid NaN when adding arrays - Stack Overflow

programmeradmin1浏览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.

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.

Share Improve this question asked Dec 11, 2009 at 0:31 JonasJonas 1031 gold badge1 silver badge4 bronze badges
Add a comment  | 

4 Answers 4

Reset to default 9

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);
(array1[3] || 0) + (array2[3] || 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) );
}
[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

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论