gpt4 book ai didi

javascript - 比较两个数组并在正则表达式后返回唯一值

转载 作者:行者123 更新时间:2023-11-29 14:43:12 25 4
gpt4 key购买 nike

我有两个数组。一个包含电子邮件列表,另一个包含匹配的字符串列表,应该被拒绝。

array1 = [ 'appstore@myntra.com',
'life@updates.cricinfo.com',
'pqr@gmail.com',
'noreply-de9ae870@plus.google.com',
'updates-24997849@shtyle.fm',
'whatsup@gmail.com',
'some@relatas.com',
'smqwe@gmail.com' ]

array 2 = [ /calendar-notification/i,
/feedproxy/i,
/techgig/i,
/team/i,
/blog/i,
/info/i,
/support/i,
/admin/i,
/hello/i,
/no-reply/i,
/noreply/i,
/reply/i,
/help/i,
/mailer-daemon/i,
/googlemail.com/i,
/mail-noreply/i,
/alert/i,
/calendar-notification/i,
/eBay/i,
/flipkartletters/i,
/pinterest/i,
/dobambam.com/i,
/notify/i,
/offers/i,
/iicicibank/i,
/indiatimes/i,
/info@relatas.in/i,
/facebookmail/i,
/message/i,
/facebookmail.com/i,
/notification/i,
/youcanreply/i,
/jobs/i,
/news/i,
/linkedin/i,
/list/i ]

array2 包含我要拒绝的所有无效电子邮件。

我如何比较这两个数组并从 array1 中删除无效的电子邮件,以便我得到

array3 = [ 'appstore@myntra.com',
'life@updates.cricinfo.com',
'pqr@gmail.com',
'whatsup@gmail.com',
'some@relatas.com',
'smqwe@gmail.com' ]

最佳答案

您基本上可以过滤它们:

var newArray = array1.filter(function (elem) {
var ok = true
array2.forEach(function (tester) {
if (tester.test(elem)) {
ok = false;
}
});
return ok
});

更新

正如@torazaburo 所建议的,使用 some 我们可以得到一个更简洁的解决方案:

var newArray = array1.filter(function (elem) {
return !array2.some(function (tester) {
return tester.test(elem)
});
});

关于javascript - 比较两个数组并在正则表达式后返回唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35917447/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com