following code:
"use strict"
const students = [
{firstname: "Max", lastname: "Mustermann", age: 21},
{firstname: "Laura", lastname: "Müller", age: 25},
{firstname: "Julia", lastname: "Schreiber", age: 30},
{firstname: "Tobias", lastname: "Lieb", age: 19}
]
console.log( typeof students.age)
returns undefined
. I don’t understand why. I also added in my code a student with an empty property age and tried to get the average like the following:
students.push({
firstname: "Christian",
lastname:"Schmidt",
age:null
})
let ageSum = 0
for (const student in students){
if(typeof student.age){
ageSum += student.age
}
}
here again, i don’t understand why the typeof
returns undefined
. Is there a better way in JavaScript to check the type object properties before processing them?
2
Answers
students
doesn’t have anage
property, hence it’sundefined
. If you want to refer to an individual student’sage
(using the subscript operator), you’ll see it is indeed a number:Messed with your code a bit. I prefer using an indexer when iterating javascript arrays like you were.