Как вызвать функцию приведения в другой функции - PullRequest
0 голосов
/ 10 июня 2018

Я пытаюсь вызвать эту функцию сокращения:

users.reduce(function (acc, obj) { return acc + obj.age/3; }, 0);   

в этой функции:

function computeUserAverageAge(users) {};

, чтобы проверить этот массив объектов на среднее значение этих "возрастных" значений:

const users = [{
           name: 'Brendan Eich',
           age: 56,
         }, {
           name: 'Linus Torvalds',
           age: 48,
         }, {
           name: 'Margaret Hamilton',
           age: 81,
         }];

Я благодарен за вашу помощь и терпение!

Ответы [ 2 ]

0 голосов
/ 10 июня 2018

Похоже, вам просто нужно вернуть результат reduce.Можно также использовать функции стрелок для краткости:

const computeUserAverageAge = users => users.reduce((a, { age }) => a + age, 0) / 3;
console.log(computeUserAverageAge(
  [{
    name: 'Brendan Eich',
    age: 56,
  }, {
    name: 'Linus Torvalds',
    age: 48,
  }, {
    name: 'Margaret Hamilton',
    age: 81,
  }]
));
0 голосов
/ 10 июня 2018

Просто переместите его в функцию и верните результат.

Примечание: вместо использования 3 используйте вместо users.length.

Я также думаю,что математически, вы должны делить на число после их сложения, а не на каждую итерацию.

const users = [{
  name: 'Brendan Eich',
  age: 56,
}, {
  name: 'Linus Torvalds',
  age: 48,
}, {
  name: 'Margaret Hamilton',
  age: 81,
}];

function computeUserAverageAge(users) {
  return Math.round(users.reduce((acc, obj) => acc + obj.age, 0) / users.length);
};

console.log(computeUserAverageAge(users))
...