Я пытаюсь понять, почему мой код не работает. Я создаю функцию, которая принимает буквы алфавита. Если это буква a, e, i, o или u, тогда моя программа должна отобразить сообщение, указывающее, что введенная буква является гласной. Если буква y, то моя функция должна отображать сообщение, указывающее, что иногда y - гласная, а иногда - согласная. В противном случае моя функция должна отображать сообщение о том, что буква является согласной.
Вот мой код
function vowelOrCons(letter) {
if ((letter) === 'a'; 'e'; 'i'; 'o'; 'u') {
return 'vowel';
} else if {
((letter) === 'y') {
return 'vowel or consonant';
} else if {
((letter) === "b", "c", "d", "f", "g", "h", "j", "k", "l",
"m", "n", "p", "q", "r", "s", "t", "v", "w", "x", "z")
return 'consonant';
}
else
{
return 'Your entry is invalid';
}
}
}
Я пытаюсь лучше изучить Javascript, поэтому ценю любую помощь, ресурсы и / или объяснения относительно моей работы, спасибо!
@NinaScholz Умерла .. :)
@ codeintech3 помогли ли вам какие-либо из этих ответов решить вашу проблему?
Да, все ответы и объяснения были очень полезны
Ваша проблема в синтаксисе.
if ((condition || another-condition) && condition) {
}
else if (some-other-condition) {
}
else {
}
Теперь что касается проверки, ее можно сократить с помощью строкового метода includes
.
const firstLetter = letter.charAt(0);
if ("aeiou".includes(firstLetter)) { .. }
Хорошо, нужно немного поработать. Взгляните на исправленный код ниже. Сначала мы перемещаем тестовые буквы в массивы и используем индекс. Затем мы исправили проблемы с синтаксисом и добавили тестовый журнал в конце.
function vowelOrCons(letter) {
let vowels = ['a', 'e', 'i', 'o', 'u'];
let consonants = ["b", "c", "d", "f", "g", "h", "j", "k", "l",
"m", "n", "p", "q", "r", "s", "t", "v", "w", "x", "z"];
if (vowels.indexOf(letter) > -1 ) {
return 'vowel';
} else if (letter === 'y') {
return 'vowel or consonant';
} else if (consonants.indexOf(letter) > -1 ){
return 'consonant';
} else {
return 'Your entry is invalid';
}
}
console.info(vowelOrCons('a'));
console.info(vowelOrCons(''));
console.info(vowelOrCons('1'));
console.info(vowelOrCons('y'));
console.info(vowelOrCons('w'));
Вы можете использовать String#includes
и вернуться, если true
с сообщением.
В этом коде используется подход раннего выхода за счет использования предложения if
и возврата. Преимущество состоит в том, чтобы опустить части else, потому что возврат выходит из функции.
function vowelOrCons(letter) {
letter = letter.toLowerCase();
if ('aeiou'.includes(letter)) {
return 'vowel';
}
if (letter === 'y') {
return 'vowel or consonant';
}
if ('bcdfghjklmnpqrstvwxz'.includes(letter)) {
return 'consonant';
}
return 'Your entry is invalid';
}
console.info(vowelOrCons('a'));
console.info(vowelOrCons('b'));
console.info(vowelOrCons('1'));
Я бы посоветовал вам объявить массив для гласных, один для согласных, а затем проверить, есть ли в массиве интересующая буква, но сначала проверьте, является ли это «y», как показано ниже;
var vowels = ['a', 'e', 'i',....]];
var consonants = ['b', 'c', 'd', ....]];
if ('y' == letter) {
// print your sentence
}
else if (/* letter is in the vowels array */) {
// print your sentence
}
else if (/* letter is in the consonants array */) {
// print your sentence
}
Удачи
похоже на новый язык ...