"use strict";
function vovelsAndConstants(s) {
let vowels = new Array();
let constants = new Array();
for (let a = 0; a < s.length; a++) {
//console.log(s[a]);
if (s[a] === "a" || "e" || "i" || "o" || "u") {
console.log(s[a]);
}
}
}
vovelsAndConstants("sosisvesalam");
Я не могу понять, почему здесь не работает оператор или. Для меня все это имеет смысл. Он выводит все символы вместо гласных
4 ответа
Вам нужно проверить равенство для каждого случая:
function vovelsAndConstants(s) {
const vowels = new Array();
const constants = new Array();
for (let a = 0; a < s.length; a++) {
if (s[a] === "a" || s[a] === "e" || s[a] === "i" || s[a] === "o" || s[a] === "u") {
console.log(s[a]);
}
}
}
vovelsAndConstants("sosisvesalam");
Другой способ использования .indexOf
а>:
const VOWEL_LETTERS = ["a","e","i","o","u"];
function vovelsAndConstants(s) {
const vowels = new Array();
const constants = new Array();
for (let a = 0; a < s.length; a++) {
if (VOWEL_LETTERS.indexOf(s[a]) !== -1) {
console.log(s[a]);
}
}
}
vovelsAndConstants("sosisvesalam");
ИМО, самый простой способ - использовать includes
, иначе вам придется перечислять все различные сравнения отдельно.
Замените это
s[a] === "a" || "e" || "i" || "o" || "u"
С участием:
["a","e","i","o","u"].includes(s[a])
Он будет выполнять сравнение строк, а не сравнение типов, как ===
, но он все равно может работать для вас.
Для вас это имеет смысл в зависимости от языка, на котором мы говорим, тогда как в программировании вы должны быть явным.
if (s[a] === "a" || s[a] === "e" || s[a] === "i" || s[a] === "o" || s[a] === "u") {
console.log(s[a]);
}
JavaScript не знает, с чем вы сравниваете «e», «i» или «o», вам нужно говорить это каждый раз.
Ваше текущее состояние успешно сравнивает только символ a . При второй проверке весь сегмент сравнения равен true , следовательно, выводятся все символы.
Вы должны сравнить текущий повторяющийся символ со всеми возможными гласными в условии:
"use strict";
function vovelsAndConstants(s) {
let vowels = new Array();
let constants = new Array();
for (let a = 0; a < s.length; a++) {
if (s[a] === "a" || s[a] ==="e" || s[a] ==="i" || s[a] ==="o" || s[a] ==="u") {
console.log(s[a]);
}
}
}
vovelsAndConstants("sosisvesalam");
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.