0
votes

Comment changer si / sinon une déclaration à la boucle dans JavaScript

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]}


3 commentaires

Je ne sais pas comment vous pouvez activer n'importe quel si / ele à un boucle - Les deux choses sont deux constructions de programmation différentes


Et une boucle est vraiment pas le moyen de le gérer


retour str.split (''). mappe (l => 'aeiou'.Inincludes (l.tolowercase ())? string.fromcharcode (l.charcodeat (0) + 1): l) .join (' ');


5 Réponses :


2
votes

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'))


0 commentaires

0
votes

Vous n'avez pas besoin de boucles pour simplifier ce code

str [i] === 'a' || str [i] === 'I' || str [i] === 'u' || str [i] === 'E' || str [i] === 'O' et str [i] === 'A' || str [i] === 'I' || str [i] === 'U' || str [i] === 'E' || STR [i] === 'O' 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] comme variable, vous pouvez réduire davantage la répétition: xxx

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. xxx

et si vous voulez ne rien faire dans le Premier cas, vous pouvez simplement éliminer les sinon en inversant la condition: xxx


2 commentaires

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.



-1
votes

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'))


0 commentaires

1
votes

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'
};


0 commentaires

0
votes

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'))


0 commentaires