Je travaille sur cette tâche que j'ai reçue de l'école. Le programme fonctionne comme ceci: Vous passez des nombres séparés par des virgules, puis le programme place les valeurs dans un tableau d'entiers (parseInt()), puis il appelle la fonction de calcul, qui calcule le nombre le plus élevé, la somme, le la différence. Mais le fait est que le programme pense que la variable sum est une chaîne, pas un int. Donc, je reçois la somme de 0 + 1 + 2 = 012. C'est du javascript btw pur.variable ne sera pas un nombre entier javascript
window.onload = start;
var arr = [];
var sum = 0;
var max;
var avg;
function start() {
document.getElementById('sub').onclick = getValues;
}
function getValues() {
var str = document.getElementById('input').value;
arr = str.split(",");
for (var i = 0; i < arr.length; i++) {
parseInt(arr[i]);
}
calculate(arr);
print();
}
function calculate(arr) {
var temp = arr[0];
sum = 0;
for (var i = 0; i < arr.length; i++) {
if (temp < arr[i]) {
temp = arr[i];
}
sum += arr[i];
}
max = temp;
avg = sum/arr.length;
}
function print() {
document.getElementById('div').innerHTML = "In the array of theese values: " + arr + ",<br>is " + max + " the biggest, " + sum + " is the sum, " + " and " + avg + " is the average.";
}
Lorsque itérer 'arr', dont vous appelez' parseInt' sur la valeur, mais il n'y a jamais changer son type à un 'nombre'. –
le 'parseInt (arr [i])' n'est assigné à aucune valeur dans la fonction getValues (), vous devez soit faire arr [i] = parseInt (arr [i]) 'ou vous analyser les valeurs int où vous en avez besoin – Icepickle
Placez un point d'arrêt sur la ligne 'parseInt'. Après l'exécution, examinez la valeur de 'arr [i]'. –