【问题标题】:Why do I keep getting a 6 instead of 21? [closed]为什么我总是得到 6 而不是 21? [关闭]
【发布时间】:2019-08-15 04:17:04
【问题描述】:

任务是让 javascript 打印数组中人员年龄的四舍五入平均值。我不明白为什么打印 6。

我已经尝试了我能想到的一切,这就是最终结果

function getRoundedAverageAge(people) {
  var sum = 0;
  for(var a = 0; a < people.length; a++){
    sum = people[a].age + sum;
    return Math.round(sum / people.length);
  }
}



/* Do not modify code below this line */

const examplePeopleArray = [
  { name: 'John', age: 19 },
  { name: 'Jack', age: 21 },
  { name: 'Jane', age: 22 }
    ];

console.log(getRoundedAverageAge(examplePeopleArray), '<-- should be 
21');

然后打印“6”。救命!

【问题讨论】:

  • 您需要在循环之外删除您的return。事实上,它是 19 除以 3。
  • 欢迎来到 *。如果你能快速学会如何调试程序代码,它会有很大帮助。

标签: javascript arrays average


【解决方案1】:

我认为最好的表达方式是,您只能从一个函数中 return 一次。

function getRoundedAverageAge(people) {
  var sum = 0;
  for(var a = 0; a < people.length; a++){
    sum = people[a].age + sum;
  }
  return Math.round(sum / people.length);
}



/* Do not modify code below this line */

const examplePeopleArray = [
  { name: 'John', age: 19 },
  { name: 'Jack', age: 21 },
  { name: 'Jane', age: 22 }
    ];

console.log(getRoundedAverageAge(examplePeopleArray), '<-- should be 21');

【讨论】: