无法使用具有多个条件语句的过滤器从数组中删除元音
wordArr = ['a', 'g', 'e', 'f'];
wordArr = wordArr.filter(function(l){
return l !== 'a' || l!== 'e'|| l!== 'i'|| l!== 'o' || l!== 'u';
});
我的结果:我的 wordArr 没有改变
期望输出:['g', f'];
如果我只检查一个元音,它只适用于一种条件。我如何使这项工作适用于多种条件?
提前谢谢你。
回答
你的条件不正确。只考虑以下几点:
return l !== 'a' || l!== 'e'
return l !== 'a' || l!== 'e'
如果字符串(内部l)是foo,则结果是true因为它不是'a'。
如果字符串是'a',则结果是true因为它不是'e':
return l !== 'a' || l!== 'e'
return false || true
return true
如果字符串是'e',则结果是true因为它不是'a':
return l !== 'a' || l!== 'e'
return true || false
return true
你需要&&s 代替。
return l !== 'a' && l!== 'e'&& l!== 'i'&& l!== 'o' && l!== 'u';
或者,甚至更好: