繁体   English   中英

从 email 地址数组中仅获取 email 地址域名

[英]Getting only the email addresses domain name from an array of email addresses

在此处输入图像描述

我整天都在堆栈溢出和谷歌上搜索,但找不到我需要的确切内容。 我有一组 email 地址,我将从用户那里获得。 Ex. [asdfgg@gmail.com, fgtrreds@yahoo.com, dgfit@gmail.com] Ex. [asdfgg@gmail.com, fgtrreds@yahoo.com, dgfit@gmail.com] 我想拆分所有 email 地址,然后将[@gmail.com, @yahoo.com]等推送到新数组。

这是 JavaScript function 我整天都在搞砸

function EmailFunction() {
var emailNames = [];
var emailDomains = [];

emailNames = $("#emailing").val();

var len = emailNames.length;
for (var i = 0; i < len; i++) {

   var domain = emailNames.split("@").pop();
    emailDomains.push(domain);
}
console.log("Email Domains = " + domain);

console.log("Function Names = " + emailNames);

}

您缺少在emailNames之前添加[i]的方法,如下所示

 function onlyUnique(value, index, self) { return self.indexOf(value) === index; } function EmailFunction() { var emailNames = []; var emailDomains = []; emailNames = ['asdfgg@gmail.com', 'fgtrreds@yahoo.com', 'dgfit@gmail.com'] var len = emailNames.length; for (var i = 0; i < len; i++) { var domain = emailNames[i].split("@").pop(); emailDomains.push(domain) var unique = emailDomains.filter(onlyUnique); } console.log(unique) } EmailFunction()

您只需一行即可完成

 const emailNames = ['asdfgg@gmail.com', 'fgtrreds@yahoo.com', 'dgfit@gmail.com']; const result = Object.keys(emailNames.map(e => e.split("@")[1]).reduce((o, e) => ({...o, [e]: null }), {})); console.log(result);

结果,我只给出唯一的域。 为此,我使用 foreach 进行迭代,使用 substr 和 indexof 获取域(包括 @),查看它是否在 resultarray 中。 如果不推它那里。

 function getDomains(mailings) { let result = []; mailings.forEach(mail => { let domain = mail.substr(mail.indexOf('@')); if (result.indexOf(domain) == -1) result.push(domain); }); return result; } let mailings = ['asdfgg@gmail.com', 'fgtrreds@yahoo.com', 'dgfit@gmail.com']; console.log(getDomains(mailings));

由于您不希望最终列表中出现重复项,因此您可以这样做

const emailNames = ['asdfgg@gmail.com', 'fgtrreds@yahoo.com', 'dgfit@gmail.com'];
car emailDomains = [];

for(let i=0; i < emailNames.length; i++) {
    let domain = emailNames[i].split("@")[1];
    if(emailDomains.imdexOf(domain) == -1) {
        emailDomains.push(domain);
    }
}
console.log(emailDomains);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM