Это происходит потому, что вы возвращаете первое вхождение, которое вы встретите в этом утверждении:
return examplePeopleArray[i].name
Если вы хотите сохранить этот лог c, вы должны сохранить желаемый результат в массив, а затем вернуть окончательный массив вне для для l oop:
function getNamesOfLegalDrivers(people){
let names = [];
for(let i =0; i < examplePeopleArray.length; i++){
if(people[i].age > 15) {
names.push(people[i].name);
}
}
return names;
}
const examplePeopleArray = [
{ name: 'John', age : 14},
{ name : 'Joey', age : 16},
{ name : 'Jane', age: 18}
];
console.log(getNamesOfLegalDrivers(examplePeopleArray))
Кроме того, более чистый способ достичь того же результата будет:
function getNamesOfLegalDrivers(people){
return people.filter(person => person.age > 15).map(person => person.name);
}
const examplePeopleArray = [
{ name: 'John', age : 14},
{ name : 'Joey', age : 16},
{ name : 'Jane', age: 18}
];
console.log(getNamesOfLegalDrivers(examplePeopleArray))
Во-первых, Вы фильтруете возраст более 15 лет и возвращаете результат оператору карты, который обязательно вернет только их имена в массив.