You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript:调用getAverageRating()为何返回undefined

问题定位

getAverageRating()返回undefined的核心原因是方法没有写返回值:

  • 你在方法内只定义了ratingsSum变量存储评分总和,既没有完成「总和除以评分数量得到平均值」的计算逻辑,也没有通过return把计算结果输出,JS中无返回值的函数默认返回undefined
  • 额外优化点:Array.reduce()没有传入初始值时,如果_ratings是空数组(也就是还没添加任何评分就调用平均评分方法)会直接抛出运行错误,建议给累加器设置初始值0规避这个边界问题
修复方案

把Media类里的getAverageRating()方法替换为以下代码即可:

getAverageRating() {
  // 初始值设为0,兼容空评分列表的场景
  const ratingsSum = this.ratings.reduce((accumulator, rating) => accumulator + rating, 0);
  // 计算平均值并返回结果
  return ratingsSum / this.ratings.length;
}
运行验证

修复后执行代码,控制台输出如下,符合预期:

true
4.666666666666667
true
2.3333333333333335
  • 第一行true是书籍《A Short History of Nearly Everything》的借出状态,调用切换借出状态方法后正确标记为已借出
  • 第二行是该书的平均评分:3个评分4、5、5总和为14,除以3得到约4.67
  • 第三行true是电影《Speed》的借出状态,切换后正确标记为已借出
  • 第四行是该电影的平均评分:3个评分1、1、5总和为7,除以3得到约2.33

内容的提问来源于stack exchange,提问作者Kuroo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 00:57:28