J'ai du mal à essayer de trouver la dernière voyelle d'une chaîne en JavaScript. J'ai découvert comment trouver la première voyelle d'une chaîne et essayé de modifier ce code mais je suis coincé. J'ai essayé d'éditer les voyelles Voici mon code: P> Var Code> et j'ai changé le 0 en -1 et vice versa mais rien n'a fonctionné. function endVowel(x){
var vowels = ("aeiouAEIOU");
return vowels.indexOf(x[-1]) !== 0;
}
5 Réponses :
Utilisez une expression régulière pour faire correspondre une voyelle, tout en utilisant des lunettes de vue négatif pour d'autres voyelles:
p>
function endVowel(x){
const match = x.match(/[aeiou](?!.*[aeiou])/i);
return match ? match[0] : 'No match';
}
console.log(endVowel('foobar'));Cela vous donnera le dernier caractère de voyelle de la chaîne (en conservant l'original supérieur / minuscule). Si vous recherchez simplement l'indice de la dernière voyelle, c'est code> indexoflasvowel code>, bien sûr!
function endVowel(x){
var y = x.toLowerCase();
var indexOfLastVowel = Math.max(y.lastIndexOf("a"), y.lastIndexOf("e"), y.lastIndexOf("i"), y.lastIndexOf("o"), y.lastIndexOf("u"));
return x.charAt(indexOfLastVowel);
}
console.log(endVowel("Find the last vowel in this string..."));
function findLastVowel(string) {
let pattern = /[aeiouAEIOU]/gim;
let result = [...string.match(pattern)]
return result[result.length - 1]
}
console.log(findLastVowel("your string here")) Pour obtenir le dernier index de la voyelle, vous pouvez dépouiller les non-voyelles de la droite en utilisant une regex et retourner la longueur - 1: p> p> vowels.indexof (x [-1]) code> tente de rechercher le dernier caractère dans x code> (en fait, x [x.longueur-1 ] code> ou x.slice (-1) code> est la syntaxe correcte), mais si cela ne devait pas être une voyelle, cela ne fonctionnera pas. Vous auriez besoin d'itérer à l'envers à partir de la fin pour tester d'autres caractères dans un tel scénario. const lastVowel = s => (s.match(/[aeiou]/ig) || "").slice(-1);
[
"foobar",
"cdgh",
"abb",
"beobbba"
].forEach(e => console.log(`"${e}" => "${lastVowel(e)}"`));
Une technique serait de construire votre Voici un exemple (et notez que le p> endvowel code> ATOP Votre startvowel code>, à l'aide d'une fonction d'inversion de chaîne. C'est souvent un principe général lorsqu'on travaille avec les premières et les dernières valeurs sur quelque chose que vous pouvez facilement inverser. endvowel code> ne dépend de aucune manière sur la mise en œuvre du StartVowel code>, uniquement sur son comportement): p> const startVowel = (str, vowels = "aeiouAEIOU") =>
str .split('') .find (c => vowels .includes (c))
const reverseString = (str) => str .split('') .reverse () .join('')
const endVowel = (str) => startVowel (reverseString (str))
console .log (
startVowel ('The quick brown fox jumped over the lazy dog'), //=> 'e'
endVowel ('The quick brown fox jumped over the lazy dog'), //=> 'o'
)
Voulez-vous que le caractère de la dernière voyelle ou l'indice qu'il est situé?
"J'ai découvert comment trouver la première voyelle d'une chaîne" - alors inversez simplement la chaîne avant d'appliquer cela.