Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.04.2021, 22:03
Новичок на форуме
Отправить личное сообщение для один Посмотреть профиль Найти все сообщения от один
 
Регистрация: 02.04.2021
Сообщений: 5

Помогите:Не работает 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;
}


ПОЧЕМУ НЕ РАБОТАЕТ?
Ведь все то же самое, кроме формы функции?
ПАМАГИТЕ бедному школьнику понять!!

Последний раз редактировалось один, 02.04.2021 в 22:06.
Ответить с цитированием
  #2 (permalink)  
Старый 02.04.2021, 22:33
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,137

Сообщение от один
Ведь все то же самое, кроме формы функции?
Ты если что-то пишешь - пиши полностью...

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;
}


А то взял первое... Добавил часть второго... Потом спрашиваешь почему не работает?!!!
Второе нужно писать полностью, а не только его первую часть.
Ответить с цитированием
  #3 (permalink)  
Старый 03.04.2021, 00:24
Новичок на форуме
Отправить личное сообщение для один Посмотреть профиль Найти все сообщения от один
 
Регистрация: 02.04.2021
Сообщений: 5

Пропустил return во внутренней ф-ции. Надо же.
Спасибо!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
контент из XMLHttpRequest response с помощью innerHTML не работает m4ybe Events/DOM/Window 9 24.01.2018 14:35
Работа с textarea Rompo Events/DOM/Window 14 16.12.2013 17:41
innerHTML для TR в InternetExplorer не работает? Непонятливый Элементы интерфейса 3 15.10.2012 17:14
JS: работает на сервере, не работает из папки -majestic- Общие вопросы Javascript 2 02.08.2012 14:41
jQyery функция странно работает! Midel Общие вопросы Javascript 4 08.04.2012 13:40