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

如何遍历对象数组并根据条件获取指定字段值?

匹配对象数组中的邮箱并获取对应plan值的实现方法

方法一:使用数组find()方法(推荐)

find()方法会遍历数组,返回第一个满足匹配条件的对象,适合单条匹配的场景:

// 定义对象数组
const userPlans = [{email: 'anu@g.com', plan: 'free'}, {email: 'anu3@g.com', plan: 'paid'}];
// 目标邮箱x
const targetEmail = 'anu3@g.com';

// 查找匹配的对象
const matchedUser = userPlans.find(user => user.email === targetEmail);

// 获取plan值,同时处理未匹配到的情况
const userPlan = matchedUser ? matchedUser.plan : '未找到对应计划';
console.log(userPlan); // 输出: paid

方法二:使用数组filter()方法(多匹配场景)

如果数组中可能存在多个相同邮箱的对象,用filter()返回所有匹配对象后提取plan:

const userPlans = [{email: 'anu@g.com', plan: 'free'}, {email: 'anu3@g.com', plan: 'paid'}, {email: 'anu3@g.com', plan: 'pro'}];
const targetEmail = 'anu3@g.com';

const matchedUsers = userPlans.filter(user => user.email === targetEmail);
// 提取所有匹配的plan值
const plans = matchedUsers.map(user => user.plan);
console.log(plans); // 输出: ['paid', 'pro']

方法三:普通for循环(兼容旧环境)

如果需要兼容不支持ES6的环境,可使用传统for循环遍历:

const userPlans = [{email: 'anu@g.com', plan: 'free'}, {email: 'anu3@g.com', plan: 'paid'}];
const targetEmail = 'anu@g.com';
let userPlan = '未找到对应计划';

for (let i = 0; i < userPlans.length; i++) {
  if (userPlans[i].email === targetEmail) {
    userPlan = userPlans[i].plan;
    break; // 找到后跳出循环提升效率
  }
}

console.log(userPlan); // 输出: free

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 22:30:54