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);
Wang Liang
  • 4,244
  • 6
  • 22
  • 45

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);
Wang Liang
  • 4,244
  • 6
  • 22
  • 45
Nikola Pavicevic
  • 21,952
  • 9
  • 25
  • 46
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
  • 14,906
  • 5
  • 47
  • 53