Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помощь по JS функции

Союз Здравых Сил Профи (517), на голосовании 10 месяцев назад
Что нужно записать в alert(), чтобы правильно вывести функцию? То есть, чтобы вычислился средний возраст.
И вообще, правильно ли прога сделана, может там дело вообще не в выводе?
Голосование за лучший ответ
Petr Muhurov Мыслитель (5922) 11 месяцев назад
 arr.reduce((sum, item) => sum + item.age, 0) / arr.length 
в алерте просто вызов функции сделать
 alert(getAverageAge(arr)) 
Союз Здравых СилПрофи (517) 11 месяцев назад
Я так делал, NaN выводит
Petr Muhurov Мыслитель (5922) Союз Здравых Сил, потому что код в функции нужно поправить, как я написал
Celtic Hammer Мудрец (16453) 11 месяцев назад
 const getAverageAge = a => { 
let sum = [];
for (i of a){
sum.push(i.age)
}
return sum.reduce((function (acc,i) { return acc + i }),0) / sum.length;
}
let v = {name: 'Vasia', age: 25}
let p = {name: 'Petia', age: 30}
let m = {name: 'Masha', age: 29}
let arr = [v, p, m]
alert(getAverageAge(arr))
Но вообще reduce тут излишен
 const getAverageAge = a => { 
let sum = 0;
for (var i = 0; i < a.length; i++) {
sum += a[i].age
}
return sum / i
}
let v = {name: 'Vasia', age: 25}
let p = {name: 'Petia', age: 30}
let m = {name: 'Masha', age: 29}
let arr = [v, p, m]
alert(getAverageAge(arr))
Союз Здравых СилПрофи (517) 11 месяцев назад
Понял. Ну значит у меня код неправильный, там не в alert() дело?
Celtic Hammer Мудрец (16453) Проще сделать так
 const getAverageAge = a => { 
        let sum = 0; 
        for (var i = 0; i < a.length; i++) { 
        sum += a[i].age 
        } 
        return sum / i 
    } 
    let v = {name: 'Vasia', age: 25} 
    let p = {name: 'Petia', age: 30} 
    let m = {name: 'Masha', age: 29} 
    let arr = [v, p, m] 
    alert(getAverageAge(arr)) 
Похожие вопросы