Помогите:Не работает callback в arr.reduce()
Задача из учебника Кантора, раздел "Методы массивов":
Получить средний возраст: Напишите функцию getAverageAge(users) , которая принимает массив объектов со свойством age и возвращает средний возраст.
let vasya = { name: "Вася", age: 25 };
let petya = { name: "Петя", age: 30 };
let masha = { name: "Маша", age: 29 };
let arr = [ vasya, petya, masha ];
ТАК РАБОТАЕТ:
function getAverageAge(users) {
return users.reduce((prev, user) => prev + user.age, 0) / users.length;
}
ТАК НЕ РАБОТАЕТ(возвращает NaN):
function getAverageAge(users) {
return users.reduce(function (prev, user) {
prev + user.age;},0) / users.length;
}
ПОЧЕМУ НЕ РАБОТАЕТ? Ведь все то же самое, кроме формы функции?:cray: ПАМАГИТЕ бедному школьнику понять!!:cray: |
Цитата:
let vasya = { name: "Вася", age: 25 };
let petya = { name: "Петя", age: 30 };
let masha = { name: "Маша", age: 29 };
let arr = [ vasya, petya, masha ];
alert(getAverageAge(arr))
function getAverageAge(users) {
return users.reduce(
function (prev, user) {
return prev + user.age;
},
0
) / users.length;
}
А то взял первое... Добавил часть второго... Потом спрашиваешь почему не работает?!!! Второе нужно писать полностью, а не только его первую часть. |
Пропустил return во внутренней ф-ции. Надо же.
Спасибо! |
| Часовой пояс GMT +3, время: 12:59. |