Я пытаюсь просмотреть свое состояние и вытащить содержимое recEmail, cc и bcc. Внутри каждого вы можете иметь несколько электронных писем, разделенных ,. Например
recEmail может иметь: [email protected], [email protected]
копия может иметь: [email protected], [email protected]
Я использую lodash для перебора объекта «this.state» и отправки писем в массив, но тогда мне пришлось бы перебирать этот новый массив, чтобы разделить электронные письма на 1 электронное письмо для каждой позиции массива (так что я могу затем запустите регулярное выражение и посмотрите, является ли это действительным адресом электронной почты или нет).
Этот метод кажется очень грязным, и я не могу не думать, что есть лучший способ сделать это. Вот что у меня есть до сих пор.
this.state = {recEmail: '', cc: '', bcc: '', subject: '', bodyText: '', testInput: false};
stateCleaner(emails){
var emailstoClean = [];
_.forOwn(emails, (value, key) => {
console.log('these are the keys: ', key);
console.log('these are the values: ', value);
if(key !== 'testInput'){
emailstoClean.push(value.split(', '))
}
})
console.log('final emailstoClean: ', emailstoClean);
return emailstoClean
}
Это дает мне два электронных письма в нулевом индексе массива emailstoClean и два электронных письма в позиции 1 (я ввел два в recEmail и два в поле cc).
Есть ли способ упростить это, чтобы просто получить одно электронное письмо в каждом индексе массива? Также, возможно, это немного связано, но включение регулярного выражения для проверки того, является ли это действительным адресом электронной почты, тоже было бы здорово. Если есть какие-либо другие детали, которые вам нужны, просто дайте мне знать. Я ценю помощь каждого.