Typescript 显示不带修剪的电子邮件阵列-es6
假设我有一系列这样的电子邮件Typescript 显示不带修剪的电子邮件阵列-es6,typescript,ecmascript-6,Typescript,Ecmascript 6,假设我有一系列这样的电子邮件 emails = [ 'guest1@gmail.com' , 'guest2@email.com' , 'guest3@email.com', 'guest3@email.com'] 预期结果:在标题中显示完整的电子邮件,其中仅允许的最大字符数为60،,因此如果有3封电子邮件超过允许的字符数,我们将显示其中两封,忽略其余的 我尝试了以下方法,但其余的都被卡住了 public summarizeEmails() { let numberOfRecipent
emails = [ 'guest1@gmail.com' , 'guest2@email.com' , 'guest3@email.com', 'guest3@email.com']
预期结果:在标题中显示完整的电子邮件,其中仅允许的最大字符数为60،,因此如果有3封电子邮件超过允许的字符数,我们将显示其中两封,忽略其余的
我尝试了以下方法,但其余的都被卡住了
public summarizeEmails() {
let numberOfRecipents: string = '';
let max_char: number = 60;
let numberOfChar: number;
let otherRecipients = this.emails
.filter(p => p.email !== this.profile.email)
.map(p => p.fullNameOrEmail().length)
console.log(otherRecipients);
}
您可以尝试此方法,检查添加电子邮件后最终字符串的长度 常量电子邮件=['guest1@gmail.com' , 'guest2@email.com' , 'guest3@email.com', 'guest3@email.com']; const newEmails=emails.reduceacc,val=>`${acc.join}${val}`。长度<60?acc.concatval:acc,[];
console.lognewemail 我会使用一个常规for循环:
let result = "";
for(const [index, email] of emails.entries()) {
if(result.length + email.length > 60) {
result += "+" + (emails.length - index);
break;
}
result += email + " ";
}
我听不懂你的问题。您希望在输出中准确显示什么。显示完整电子邮件,最多60个字符,因此,例如,如果有两封50个字符的电子邮件,第三封30个字符的电子邮件,我们输出前两封电子邮件,但不输出类似的内容guest3@......well如果字符数超过60,我基本上是想显示电子邮件,而不是像那样修剪它们guest1@.... 只需显示完整的电子邮件,而忽略其余字符Hanks很好:我的问题是如何显示其余电子邮件的长度+数组中剩余的2封电子邮件,例如:结果+=++emails.length-索引;这在没有-1Hi Jonas的情况下效果很好,我正在尝试使用forEach而不是for of,任何帮助都将不胜感激:@Amr.Ayoub为什么?!您不能破坏.forEach循环,因此它在这里是错误的工具