Функция генерации массива email адресов
Не могу разобраться. Необходимо написать функцию, которая создаёт массив email-адресов, не попавших в чёрный список. В качестве аргументов функция должна принимать массив строк с исходными email адресами и массив строк с email адресами в чёрном списке.
const validEmail = ['[email protected]', '[email protected]', '[email protected]', '[email protected]','[email protected]'];
const blackList = ['[email protected]', '[email protected]', '[email protected]', '[email protected]', '[email protected]'];
const emailsInBlackList = [];
const emails = [];
function getValidEmail() {
for (let email of validEmail) {
if (email) {
console.log('Валидный емаил! ' + validEmail);
emails.push;
}
}
for (let email of blackList) {
if (email) {
console.log('Не валидный емаил! ' + blackList);
emailsInBlackList.push;
}
}
}
getValidEmail(emails);
Ответы (5 шт):
Автор решения: Konstantin Modin
→ Ссылка
Не был вызван метод push массива:
function getValidEmail() {
for (let email of validEmail) {
if (email) {
console.log('Валидный емаил! ' + validEmail);
emails.push(email);
}
}
for (let email of blackList) {
if (email) {
console.log('Не валидный емаил! ' + blackList);
emailsInBlackList.push(email);
}
}
}
Автор решения: Artur Nailevich
→ Ссылка
Непонятен смысл вашей функции
- В качестве аргументов функция должна принимать массив строк с исходными email адресами - у вас же на входе сразу список валидных email - validEmail.
- Необходимо написать функцию, которая создаёт массив email-адресов, не попавших в чёрный список. - соответственно не создать массив не попавших в черный список. Ваша функция всегда выводит: Валидный емаил! - массив validEmail Не валидный емаил! - массив blackList
Если делать по условиям то так скорее:
const allEmails = ['[email protected]', '[email protected]', '[email protected]', '[email protected]', '[email protected]', '[email protected]', '[email protected]', '[email protected]', '[email protected]', '[email protected]'];
const blackList = ['[email protected]', '[email protected]', '[email protected]', '[email protected]', '[email protected]'];
let count;
let validAll = [];
function generateValid(allE, black) {
for (let indexAll in allE) {
count = 0;
for (let indexBlack in black) {
if (allE[indexAll] === black[indexBlack]) {
break;
}
else if (count === black.length-1) {
validAll.push(allE[indexAll]);
}
else {
count++;
}
}
}
return validAll;
}
let validEmails = generateValid(allEmails, blackList);
console.log(validEmails);
Автор решения: Artur Nailevich
→ Ссылка
Сделал еще с использованием includes и forin (посмотрел, можно было проще через forof сделать, но еще не прошел на тот момент)
const allEmails = ['[email protected]', '[email protected]', '[email protected]', '[email protected]', '[email protected]', '[email protected]', '[email protected]', '[email protected]', '[email protected]', '[email protected]'];
const blackList = ['[email protected]', '[email protected]', '[email protected]', '[email protected]', '[email protected]'];
let validAll = [];
function generateValid(allE, black) {
for (let indexAll in allE) {
if (!black.includes(allE[indexAll])) {
validAll.push(allE[indexAll]);
}
}
return validAll;
}
let validEmails = generateValid(allEmails, blackList);
console.log(validEmails);
Автор решения: Нагибаю ТвоиМечты
→ Ссылка
function filter(mail, blacklist) {
// console.log(mail, blacklist);
for (let list of mail) {
// console.log(list);
let z = blacklist.indexOf(list);
// console.log(z)
if (z === -1) {
emails.push(list)
}
}
}
let emails = [];
let postalAddresses = ['dalv', 'ProdVil', '12345', 'login', 'dick', 'fiLoR2'];
let postalAddressesBlecklist = [ '12345', 'login', 'dick'];
filter(postalAddresses, postalAddressesBlecklist);
console.log(emails);
Как вариант)
Автор решения: Айхан Р.
→ Ссылка
function filter(validEmail , blackList) {
let filteredMails = [];
for (let i = 0; i < validEmail .length; i++) {
if (!blackList.includes(validEmail [i])) {
filteredMails.push(validEmail [i])
}
}
return filteredMails;
}
let validEmail = ['[email protected]', '[email protected]',
'[email protected]', '[email protected]',
'[email protected]'];
let blackList = ['[email protected]', '[email protected]',
'[email protected]', '[email protected]',
'[email protected]'];
let result = filter(validEmail , blackList)
console.log(result)