1

So I have written this code to calculate the average marks of students using Javascript. But for some reason it just gives the output as 242628302.6 always. I dont understand whats wrong with the code....Any help would be appreciated.

const marks = [];
var size = 5; //Maximum Array size

for (var i = 0; i < size; i++) { //Taking Input from user
   marks[i] = prompt('Enter Element ' + (i + 1));
}
const average = marks => marks.reduce((prev, curr) => prev + curr, 0) / marks.length;
const result = average(marks);
console.log(result);
Yang Yu
  • 3,864
  • 6
  • 19
  • 40
Chloe
  • 29
  • 5

2 Answers2

3

Try with Number :

const marks = [];
var size = 5; //Maximum Array size

for (var i = 0; i < size; i++) { //Taking Input from user
     marks[i] = prompt('Enter Element ' + (i + 1));
}
const average = marks => marks.reduce((prev, curr) => Number(prev) + Number(curr), 0) / marks.length;
const result = average(marks);
console.log(result);
Yang Yu
  • 3,864
  • 6
  • 19
  • 40
Nikola Pavicevic
  • 13,800
  • 6
  • 18
  • 38
0

You need to convert the data type from string to Number since the prompt method return type is a string.

const marks = [];
                var size = 5; //Maximum Array size

                for (var i = 0; i < size; i++) { //Taking Input from user
                    marks[i] = prompt('Enter Element ' + (i + 1));
                }
                const average = marks => marks.reduce((prev, curr) => prev + Number(curr), 0) / marks.length;
                const result = average(marks);
                console.log(result);
Ran Turner
  • 8,973
  • 3
  • 23
  • 37