Y a-t-il un moyen normal de calculer la somme des valeurs de matrice dans JavaScript?
Comme dans PHP - Que trouvé est ce qui suit et BTW - ne fonctionne pas. p> J'ai besoin du résultat - p> $ SUM = Array_sum ($ Nums); Code> P> 10 code> et non 235 code>; p> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
4 Réponses :
Convertissez-les en numéro en utilisant p> Number () code> . En tant que tableau contenant Strings code> SO + CODE> Opérateur les joindrez à ne pas les ajouter. <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Le tableau a des chaînes, vous aurez besoin de les analyser à p> int code> s, utilisez parseint () ou + code> à couler au numéro <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
+ code> n'est pas sténographique pour parseint () code>. Type: + "123.456" code> dans votre console et voyez ce que vous obtenez.
@Scottmarcus a noté, thnx :), édité la réponse
Si tous les articles sont des chaînes, ils seront traités comme une concaténation. De plus, vous devez fournir une valeur initiale de zéro pour l'exhaustivité.
p>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Un correctif possible consiste à forcer la chaîne Unary Plus est la manière la plus rapide et préférée de convertir quelque chose en un nombre p>
BlockQuote> En outre, je changerai la définition de votre fonction pour être plus lisible, p> représentant des numéros code> à numéros code> avec l'opérateur
réduire () code> commence par un accumulateur code> de 0 code> 0 code> Et sur chaque itération sur la matrice, il résume le numéro actuel révisé à l'accumulateur. P> function sum(arr)
{
return arr.reduce((acc, num) =>
{
num = parseFloat(num);
return acc + (Number.isNaN(num) ? 0 : num)
}, 0);
}
let nums1 = ["2","3","5"];
console.log(sum(nums1));
let nums2 = ["2","3.345","5.5", "foo", {foo:"bar"}, ["hello"]];
console.log(sum(nums2));
Vous devez analyser une chaîne au numéro