如何在另一个函数中调用reduce函数

时间:2018-06-09 22:37:36

标签: javascript arrays object reduce

我正在尝试调用此reduce函数:

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

在这个函数中:

function computeUserAverageAge(users) {};

测试这些对象数组的平均值" age"值:

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

感谢你的帮助和耐心!

2 个答案:

答案 0 :(得分:2)

只需在函数中移动它并返回结果。

注意:而非使用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))

答案 1 :(得分:0)

听起来你只需要返回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,
  }]
));