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

Ionic3中移除Firebase返回数据内messages为undefined的项

过滤messages为undefined的聊天用户条目

很简单,你只需要在将用户对象推入clientsShortList之前,增加一个判断条件,检查messages属性是否不为undefined即可。修改后的代码如下:

getUsersChat() { 
  let clientsKeys: Array<any>; 
  let i = 0; 
  console.log('obtain clients'); 
  this.mySegService.getClients().take(1).subscribe(res => { 
    clientsKeys = Object.keys(res); 
    this.totalNumberClients += clientsKeys.length; 
    clientsKeys.forEach(clientKey => { 
      // 先取出messages值,方便后续判断和使用
      const userMessages = res[clientKey]['messages'];
      // 同时满足i<99和messages不为undefined两个条件才添加
      if (i < 99 && userMessages !== undefined) { 
        this.clientsShortList.push({ 
          name: res[clientKey]['name'], 
          messages: userMessages 
        }); 
      } 
      i += 1; 
    }); 
    console.log(this.clientsShortList); 
  }); 
}

额外提示:

  • 如果你的业务场景中,messages可能出现null或者空对象这类无效值,你可以把判断条件改成if (i < 99 && userMessages),这样会自动过滤掉所有“假值”(包括undefined、null、0、空字符串、空对象等)
  • 把messages存到临时变量userMessages里,既让代码更简洁,也避免了重复访问同一个属性,提升一点小性能

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:13:50