Объекты не имеют значения length
.Если вы хотите извлечь свойство age
, сделайте это явно, например, obj.age
:
var peopleWhoWantToSeeMadMaxFuryRoad = [{
name: "Mike",
age: 12,
gender: "male"
}, {
name: "Madeline",
age: 80,
gender: "female"
}, {
name: "Cheryl",
age: 22,
gender: "female"
}, {
name: "Sam",
age: 30,
gender: "male"
}, {
name: "Suzy",
age: 4,
gender: "female"
}]
for (var i = 0; i < peopleWhoWantToSeeMadMaxFuryRoad.length; i++) {
if (peopleWhoWantToSeeMadMaxFuryRoad[i].age < 18) {
console.log("person " + peopleWhoWantToSeeMadMaxFuryRoad[i].name + ' is under 18')
}
}
Или, если быть более кратким, использовать метод массива и деструктурировать:
var peopleWhoWantToSeeMadMaxFuryRoad = [{
name: "Mike",
age: 12,
gender: "male"
}, {
name: "Madeline",
age: 80,
gender: "female"
}, {
name: "Cheryl",
age: 22,
gender: "female"
}, {
name: "Sam",
age: 30,
gender: "male"
}, {
name: "Suzy",
age: 4,
gender: "female"
}]
peopleWhoWantToSeeMadMaxFuryRoad.forEach(({ name, age }) => {
if (age < 18) {
console.log("person " + name + ' is under 18');
}
});
Если вы хотите новый массив, содержащий каждый объект person, возраст которого не достиг 18 лет, используйте .filter
вместо .forEach
:
const under18 = peopleWhoWantToSeeMadMaxFuryRoad.filter(({ age}) => age < 18);