I'm trying to get the average of the property "markAv" from the variable avengers.
avengers = []
function Avenger(fullName, classRoom, city, job, studies, markAv) {
this.fullName = fullName;
this.classRoom = classRoom;
this.city = city;
this.job = job;
this.studies = studies;
this.markAv = markAv;
avengers.push(arguments)
}
Avenger({
fullName: "Hulk Paul",
classRoom: "V",
city: "Miami",
job: "Cientist",
studies: "Harvard",
markAv: 8
})
Avenger({
fullName: "Tony Stark",
classRoom: "XI",
city: "NYC",
job: "Ingeneer",
studies: "MIT",
markAv: 10
})
Avenger({
fullName: "Diana Princess",
classRoom: "III",
city: "NYC",
job: "Warrior",
studies: "Atenas",
markAv: 11
})
To get it, I inserted the function "getAverage". However, it is returning "NaN". I would like to know the reason and an explanation of how to solve it, because I don't understand why.
let getAverage = arr => {
let reducer = (total, currentValue) => total + currentValue;
let sum = arr.reduce(reducer)
return sum / arr.length;
}
let average = avengers.map(markAv => avengers.markAv);
console.log(getAverage(average));
avengers.push(arguments)line. Use thenewoperator to create instances ofAvengerand push those objects inside theavengersarray.avengers.push(new Avenger("Tony Stark", "XI"....))<- Also, don't pass an object. Just pass the values as arguments.function Avenger({ fullName, classRoom, city, job, studies, markAv })