首页 > 解决方案 > 获取节点 Js 中重复 JSON 对象中值相同的电子邮件

问题描述

我有一组 JSON 对象。

[{ Email: 'aa@gmail.com', status: 'Success' }
{ Email: 'bb@gmail.COM', status: 'Fail' }
{ Email: 'aa@gmail.COM', status: 'Fail' }
{ Email: 'cc@gmail.com', status: 'Success' }]

现在我想要具有不同状态值的电子邮件列表与相同的电子邮件。从上面的示例中,我可以期待电子邮件aa@gmail.com,因为在第一个位置aa@gmail.com有 valueSuccess而在第三个位置aa@gmail.com有 value Fail

如何在 Java Script 中实现这一点?

标签: javascriptnode.jsarraysjsonobject

解决方案


这段代码可以工作,但它不是正确的方法 - 当您分配需要检查它们是否已经存在的值时,如果存在,请将其放入数组中,这会更容易。

var mail = [{ Email: 'aa@gmail.com', status: 'Success' }
               { Email: 'bb@gmail.COM', status: 'Fail' }
               { Email: 'aa@gmail.COM', status: 'Fail' }
               { Email: 'cc@gmail.com', status: 'Success' }]; 

    var emails = mails.map(mail => mail.Email);
    var emailChecker = [];
    var emailDetectedTwice = [];

    for(var i = 0; i<=emails.length-1; i++){
        if(!emailChecker.includes(emails[i].toLowerCase())){
            emailChecker.push(emails[i])
        } else {
            emailDetectedTwice.push(emails[i])
        }
    }

    console.log(emailDetectedTwice);


推荐阅读