JavaScript数组 - 过滤掉与特定字符串

时间:2017-01-27 12:58:41

标签: javascript arrays

我正在尝试遍历数组并过滤掉匹配特定值的所有项目。

例如我有这个数组:

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"]

1 个答案:

答案 0 :(得分:4)

||替换为和&&

如果您选择所有不包含Hotmail或不包含Gmail的电子邮件,您将获得并非包含两者的所有电子邮件。这不是您的目标。
你想获得所有那些不包含hotmail和gmail的东西!

const filtered = emails.filter((email) => {
  return !email.includes('@hotmail.com') && !email.includes('@gmail.com');
});