これを使用するだけで、何もループする必要はありません。
var findVowel = function(letter) {
return "aeiou".indexOf(letter) != -1; // return if the letter is found in "aeiou"
};
または、私の個人的なお気に入り:
var findVowel = function(letter) {
return ~"aeiou".indexOf(letter);
};
.indexOf()
パラメータが文字列内に見つからない場合はを返し-1
ます。それ以外の場合は、文字列内のパラメータの位置(int from 0
to string length - 1
)を返します。
したがって、最初のサンプルでは、が.indexOf()
返される場合-1
、その文字は母音ではありません。他の値を返す場合はそうです。(したがって!= -1
)。
これ~
はビット単位のNOTであり、その出力を反転します:->falseっぽい値に
-1
なります。(Xが正または0の場合)は->真っぽい値になります。0
X
-(X+1)
このように、関数は、文字が母音の場合はtrue-ishを返し、そうでない場合はfalse-ishを返します。
「厳密な」ブール出力が必要な場合は、を次のように置き換えますreturn
。
return !!~"aeiou".indexOf(letter);
は!!
doubleブール値NOT
です(つまり、ブール値を2回反転します)。これにより、Trueっぽい値が。にキャストされtrue
、falseっぽい値(0
)が。にキャストされfalse
ます。