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

JavaScript不使用for循环如何过滤对象数组嵌套数组中的gmail元素

实现方案

核心逻辑是对每个数据条目下的邮箱数组调用filter方法筛选gmail后缀邮箱,全程使用数组内置方法,不需要for循环,符合要求。

完整实现代码

const gmailList = aadharData.map(info => {
  const fullname = `${info.firstName} ${info.lastName}`;
  // 过滤后缀为@gmail.com的邮箱,兼容emails为空/undefined的场景
  const filteredEmails = (info.emails || []).filter(email => email.endsWith('@gmail.com'));
  return { fullname, email: filteredEmails };
})
// 可选:如果需要过滤掉没有任何gmail邮箱的条目,保留下面这行,不需要就删掉
.filter(item => item.email.length > 0);

代码说明

  • 用map方法遍历原aadharData数组,直接生成符合目标格式的新数组,比手动向空数组push更简洁规范
  • 邮箱筛选使用字符串内置的endsWith方法匹配@gmail.com后缀,匹配规则准确
  • (info.emails || [])的写法可以兼容原数据中emails字段为空、undefined的场景,避免调用filter时报错
  • 末尾可选的filter方法用来删除完全没有gmail邮箱的条目,如果需要保留这类用户(email字段为空数组)可以直接删除这段逻辑

测试数据输出结果

[
  {
    fullname: "Ritam Singhal",
    // 注意原数据中的efg@gamil.com是拼写错误(a和i顺序颠倒),不会被匹配
    email: ["ghj@gmail.com"]
  },
  {
    fullname: "Siddarth Singhal",
    email: ["fgdfg@gmail.com"]
  }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 10:42:03