写一个函数removeVowelKeys,它接受一个字符串keys数组,并返回一个不以元音(aeiouy)开头的keys数组。字母大小写无关紧要。
示例:
removeVowelKeys(['alarm', 'chip', 'isValid', 'Advice', 'onClick']); // ['chip']
这是我的attmpt这是最大的我可以得到它:
function removeVowelKeys(keys) {
let result = [];
for (let i=0;i<=keys.length;i++){
if (keys[i][0]!= 'a'||keys[i][0]!= 'e'||keys[i][0]!= 'i'||keys[i][0]!= 'o'||keys[i][0]!= 'u'||keys[i][0]!= 'y'){
result.push(keys[i])
}
}
return result;
}
7条答案
按热度按时间kninwzqo1#
这里有另一个解决方案,以防任何人想要使用正则表达式。它仍然循环遍历键并获取每个传入参数的第一个字符,但会根据元音对其进行检查。
4sup72z82#
这种情况的问题是:
它可以匹配任何字母表。您正在执行
OR
检查。以e
为例,进行一次空运行。这将是第一个条件。a
将通过第二个条件。如果表达式中的任何一个为真,则整个表达式返回真。除此之外,您希望代码运行到
i<keys.length
。数组从0开始。为了处理大小写,你需要像上面那样降低大小写。wlp8pajw3#
你可以
filter
数组,并在每一个项目检查,如果项目startsWith
一个元音字符从数组与some
方法。e0bqpujr4#
我想这个应该可以了。
因此,首先我们将字符串的params数组传递给函数,然后我们创建元音数组来比较数组的每个第一个元素,我们检查是否是元音。
array.filter()将根据你的条件创建一个新的数组,所以这将只返回首字母不是元音的元素。
9nvpjoqh5#
数组有一个
.filter
函数,它可能是解决这个问题的最佳工具。e5nqia276#
过滤掉以元音开头的单词。简单地使用
Array.prototype.filter
方法。eivgtgni7#