我正在尝试遍历数组并过滤掉不匹配特定值的所有项目。
例如我有这个数组:
const emails = ["nick@hotmail.com", "nick@yahoo.com", "nick@gmail.com", "bob@yahhoo.com", "bob@gmail.com", "boc@test.com"];
我想过滤掉以“
”结尾的电子邮件* @ hotmail.com *@gmail.com
我已经试了一下并得到了这个,但这不起作用:
const filtered = emails.filter((email) => {
return !email.includes('@hotmail.com') || !email.includes('@gmail.com');
});
上述示例的首选输出为:
["nick@yahoo.com", "bob@yahhoo.com", "boc@test.com"]
答案 0 :(得分:4)
将||
替换为和&&
如果您选择所有不包含Hotmail或不包含Gmail的电子邮件,您将获得并非包含两者的所有电子邮件。这不是您的目标。
你想获得所有那些不包含hotmail和gmail的东西!
const filtered = emails.filter((email) => {
return !email.includes('@hotmail.com') && !email.includes('@gmail.com');
});