【问题标题】:Get the avarage value of array with objects one key value - Javascript [duplicate]获取具有对象一键值的数组的平均值 - Javascript [重复]
【发布时间】:2019-08-26 09:59:06
【问题描述】:

我有一组有年龄的用户,我想得到用户的平均年龄。到目前为止,我尝试使用 reduce 来实现它,但它不会实现它不是 reduce 的正确语法。

这是我的代码:

let sam = { name: "Sam", age: 21 };
let hannah = { name: "Hannah", age: 33 };
let alex = { name: "Alex", age: 24 };

let users = [ sam, hannah, alex ];

function getAverageAge(array){
  let sumAge = array.age.reduce(function(sum, current) {
    return sum + current;
  }, 0)

  return (sumAge / (array.length + 1));
}

console.log( getAverageAge(users) ); // 21 + 33 + 24 / 3 = 26

在这种情况下,它应该返回 26。

【问题讨论】:

  • 您正在迭代的对象是对象,而不是数字,因此 current 将是一个对象 - 您必须访问对象的 age 属性才能获得数字(并更改 @987654326 @到(array.length)
  • @CertainPerformance 我不想得到总和,我想得到一个平均值。
  • 你需要得到总和才能得到平均值(至少,按照你的方法)
  • @robertHovhannisyan 如果你有总和,你也可以得到平均值,然后就是简单的数学。
  • @VaibhavVishal 对不起,我没有达到您的期望

标签: javascript arrays object reduce


【解决方案1】:

数组没有age 属性,只有你的对象拥有它:

let sam = { name: "Sam", age: 21 };
let hannah = { name: "Hannah", age: 33 };
let alex = { name: "Alex", age: 24 };

let users = [ sam, hannah, alex ];

function getAverageAge(array){
  const sumAge = array.reduce(function(sum, current) {
    return sum + current.age;
  }, 0)

  return (sumAge / array.length);
}

console.log( getAverageAge(users) );

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-01
    • 1970-01-01
    • 2021-09-26
    • 1970-01-01
    • 2020-11-11
    相关资源
    最近更新 更多