簡體   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