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

Firebase数据库suly字段求和问题:返回整个对象而非结果

解决Firebase数据库中"suly"字段求和问题

嗨,我来帮你搞定这个Firebase求和的问题~你当前代码返回整个对象,核心原因是reduce方法没有设置初始累加值:当reduce没给初始值时,第一次迭代会把数组的第一个元素(也就是你的整个对象)当作sum的初始值,后续把对象和数值相加,自然得不到正确的总和。

直接给你修改好的代码,同时做了一些容错处理:

constructor(
  public navCtrl: NavController, 
  public navParams: NavParams,
  private firebasedb: AngularFireDatabase
) { 
  this.firebasedb.list("/fogasok/").subscribe(_data => {
    // 关键:给reduce设置初始值0,确保sum从数值类型开始累加
    // 同时用item.suly || 0处理字段缺失/值为空的情况,避免出现NaN
    let sulySum = _data.reduce((sum, item) => sum + (item.suly || 0), 0);
    console.log("nézzük meg a sumot", sulySum);
  });
}

额外给你两个实用小提示:

  • 如果你的业务只需要获取一次数据(不需要实时监听更新),可以添加take(1)操作符来自动取消订阅,避免内存泄漏:
    // 先导入take操作符
    import { take } from 'rxjs/operators';
    
    // 然后修改订阅部分
    this.firebasedb.list("/fogasok/").pipe(take(1)).subscribe(_data => {
      let sulySum = _data.reduce((sum, item) => sum + (item.suly || 0), 0);
      console.log("nézzük meg a sumot", sulySum);
    });
    
  • 如果suly字段是字符串类型的数字,记得先转成数值,比如parseFloat(item.suly) || 0,避免字符串拼接导致错误结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:21:22