8
votes

En JavaScript, comment éviter Nan lors de l'ajout de tableaux

J'essaie d'ajouter les valeurs de deux tableaux en JavaScript, par exemple. [1,2,1] + [3,2,3,4]

La réponse doit être 4,4,4,4 mais je reçois 4,4,4 ou 4,4,4, Nan si je change la longueur de la 1ère de la matrice à 4.

Je connais un 4ème numéro doit être dans le 1er tableau, mais je ne peux pas comprendre comment dire à JavaScript pour le faire 0 plutôt que non défini s'il n'y a pas de numéro.


0 commentaires

4 Réponses :


6
votes
(array1[3] || 0) + (array2[3] || 0)

0 commentaires

9
votes

Utiliser isnan pour assurer que la valeur n'évalue pas nan dans les opérations arithmétiques.

Cela ajoutera deux numéros de telle sorte que si l'un d'entre eux n'est pas un Numéro, il sera substitué à 0. xxx

si vous soupçonnez que A ou B pourrait être une chaîne au lieu de nombre ( "2" Au lieu de 2 ), vous devez le convertir en nombre avant de l'ajouter. Vous pouvez utiliser un + pour le faire. xxx


2 commentaires

Woot, Unary Plus convertit en nombre, génial!


Je trouve le Numéro Constructeur ( numéro ('123') ) Pour être plus clair que le Opérateur Unary Plus ( + '123' ).



1
votes
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) );
}

0 commentaires

0
votes
1,2,33,2,1

0 commentaires