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

JavaScript中如何筛选值数组中未存在于对象数组的元素

解决方案

要筛选出a1中存在但b1的Email字段里没有的邮箱,可以按以下方式实现:

高效实现(推荐)

先把b1里的所有邮箱提取到Set中(Set的查找效率是O(1),数据量大时比数组遍历快很多),再用filter遍历a1做判断:

const a1 = ["emailuser1@domain.com", "emailuser2@domain.com", "emailuser3@domain.com"];

const b1 = [
    {
        "Name": "username",
        "Email": "emailuser2@domain.com"
    },
    {
        "Name": "username2",
        "Email": "emailuser23@domain.com"
    },
];

// 提取b1中的所有邮箱存入Set
const bEmailSet = new Set(b1.map(item => item.Email));
// 筛选目标邮箱
const filteredEmails = a1.filter(email => !bEmailSet.has(email));

console.log(filteredEmails); // 输出: ["emailuser1@domain.com", "emailuser3@domain.com"]

简洁实现(小数据量适用)

如果数据量很小,也可以直接用some方法遍历b1做判断,无需额外创建Set:

const filteredEmails = a1.filter(email => !b1.some(item => item.Email === email));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 06:13:33