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

JS中使用filter过滤Firebase数据如何返回完整对象而非仅key

你可以在filter筛选后拼接map方法,将uid和对应成员字段合并返回,示例代码如下:

const filteredMembers = Object.keys(membersData)
  .filter(uid => membersData[uid].mStatus === true)
  .map(uid => ({
    uid,
    first: membersData[uid].first,
    last: membersData[uid].last,
    mStatus: membersData[uid].mStatus
  }))

如果想要更简洁的写法,也可以用对象扩展运算符简化字段复制:

const filteredMembers = Object.keys(membersData)
  .filter(uid => membersData[uid].mStatus === true)
  .map(uid => ({ uid, ...membersData[uid] }))

如果数据量较大,推荐用reduce方法一次性完成过滤和字段组装,避免两次遍历数组:

const filteredMembers = Object.entries(membersData).reduce((result, [uid, memberInfo]) => {
  if (memberInfo.mStatus) {
    result.push({ uid, ...memberInfo })
  }
  return result
}, [])

以上写法最终返回的结果都是符合要求的数组,结构示例如下:

[
  {
    uid: 'uid1',
    first: 'blah',
    last: 'blah',
    mStatus: true
  },
  {
    uid: 'uid2',
    first: 'blah',
    last: 'blah',
    mStatus: true
  }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 05:57:01