JSFiddle - React, Tailwind, and code Playground
by ozzon91
HTML
<div id ='mails'></div>
JavaScript
var mailsNode = document.getElementById('mails');
var onlyAliases = ['t', 'w'];
var mails = ["[email protected]", "[email protected]", "[email protected]", "[email protected]", '[email protected]'],
names = ["Gitter Notifications", "", "Tom Soer", 'Test', ""];
var CountChars = 20;
var lavel = 3;
var res = '';
function minMails(mailMaxCountChars, names, mails) {
var result = _.map(mails, function(mail,n) {
var name = names[n] || '';
var mailPart = mail.split('@')[0] || '';
if(!_.contains(onlyAliases, mailPart)) {
if(!name.length) {
name = mail;
if(lavel <= 2) {
name = mailPart;
}
} else {
if(lavel <= 1) {
name = name.split(' ')[0];
}
}
} else {
name = 'я';
}
return name;
});
result = _.uniq(result).join(', ');
if(result.length > mailMaxCountChars && (lavel > 1)) {
lavel--;
minMails(CountChars, names, mails);
} else {
return result;
}
}
mailsNode.textContent = minMails(CountChars, names, mails);