Je voudrais changer de déclaration si / else à des boucles dans une fonction qui reçoit une chaîne et retourne à une nouvelle chaîne qui change les lettres vocelles à la lettre suivante après elle.
P>
if(str[i]==='a' || str[i]==='i' || str[i]==='u'||str[i]==='e' || str[i]==='o'){}
else if(str[i]==='A' || str[i]==='I' || str[i]==='U'|| str[i]==='E' || str[i]==='O'){}
else{strNew+=str[i]}
5 Réponses :
Vous pouvez vérifier si le personnage est une voyelle, puis prenez la lettre suivante d'une chaîne donnée ou de la lettre réelle.
p>
function changeVowels(str) {
var alphabet = 'abefijopuvABEFIJOPUV';
var strNew = ""
for (var i = 0; i < str.length; i++) {
if ('aeiou'.includes(str[i].toLowerCase())) {
strNew += alphabet[alphabet.indexOf(str[i]) + 1];
} else {
strNew += str[i];
}
}
return strNew;
}
console.log(changeVowels('Car'))Vous n'avez pas besoin de boucles pour simplifier ce code
Vous pouvez réduire davantage les multiples ou les multiples si vous utilisez. un tableau et TRAY # Comprend alternativement Corder # Comprend fera le même mais je vais utiliser un tableau car il est un peu plus universel pour les valeurs, même si une chaîne serait plus courte. p> et si vous voulez ne rien faire dans le Premier cas, vous pouvez simplement éliminer les str [i] === 'a' || str [i] === 'I' || str [i] === 'u' || str [i] === 'E' || str [i] === 'O' code> et str [i] === 'A' || str [i] === 'I' || str [i] === 'U' || str [i] === 'E' || STR [i] === 'O' code> concerne les mêmes lettres, mais avec une capitalisation différente, vous pouvez ainsi réduire votre code en deux en considérant seulement un cas (supérieur ou inférieur) et à convertir quoi que ce soit. Si vous extrayez str [i] code> comme variable, vous pouvez réduire davantage la répétition: p> sinon code> en inversant la condition: p>
Les chaînes ont aussi une méthode "Comprennent"
@Jaromandax Ouais, je viens d'ajouter une note pour pourquoi j'ai utilisé un tableau. Fondamentalement, plus universel, vous pouvez également l'utiliser pour des chiffres, par exemple.
Séparez votre chaîne et vérifiez si cela existe dans votre variable alphabet. Si cela présente signifie que vous obtenez le caractère suivant, sinon renvoyez le même caractère et ainsi de suite sur
p>
var alphabet = 'abefijopuvABEFIJOPUV';
function changeVowels(str) {
const newArray = str.split('').map(element => {
let index = alphabet.indexOf(element);
if(index > -1) {
return alphabet.charAt(index + 1);
} else {
return element;
}
})
return newArray.join('');
}
console.log('final --- ', changeVowels('Car'))Voici une autre façon amusante de le faire
p>
{
a: 'b',
e: 'f',
i: 'j',
o: 'p',
u: 'v',
A: 'B',
E: 'F',
I: 'J',
O: 'P',
U: 'V'
};
Je vais le rendre plus simple pour vous
p>
function changeVowels(str) {
var alphabet = 'abefijopuvABEFIJOPUV';
for(var i = 0; i < alphabet.length; i++){
str = str.replace(new RegExp(alphabet[i], 'g'), alphabet[i+1]);
i++
}
return str
}
console.log(changeVowels('Facebook'))
Je ne sais pas comment vous pouvez activer n'importe quel
si code> /ele code> à unboucle code> - Les deux choses sont deux constructions de programmation différentesEt une boucle est vraiment b> pas le moyen de le gérer
retour str.split (''). mappe (l => 'aeiou'.Inincludes (l.tolowercase ())? string.fromcharcode (l.charcodeat (0) + 1): l) .join (' '); code>