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

React+Firebase项目:如何过滤Firestore中Score后缀字段并求和?

解决Firestore数据中分数字段求和的问题

你的代码主要有两个问题:一是过滤条件错误(当前判断的是键名等于Score,而非以Score结尾);二是用map处理求和不合适,应该用reduce来直接累加数值。以下是修正后的完整实现:

步骤1:计算总分

先从Firestore返回的数据中过滤出目标字段,再累加分数值:

// 从datasets中提取并计算总分
const totalScore = Object.entries(datasets)
  // 过滤出键名以"Score"结尾的字段
  .filter(([key]) => key.endsWith('Score'))
  // 累加分数:将字符串转成数字,初始累加值为0
  .reduce((sum, [_, value]) => sum + Number(value), 0);

步骤2:在React组件中渲染总分

直接在组件的JSX中使用计算好的totalScore即可:

return (
  <h2>{totalScore}</h2>
);

额外说明(可选)

如果Firestore返回的分数可能存在空值或非数字情况,可以加个兜底判断避免出现NaN:

const totalScore = Object.entries(datasets)
  .filter(([key]) => key.endsWith('Score'))
  .reduce((sum, [_, value]) => sum + (Number(value) || 0), 0);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 19:40:39