Ca m'a l'air correct. En revanche, c'est relativement long à lire. Exemple d'une autre manière de faire, mais loin d'être la seule:
function compterNbVoyelles(mot) {
let nbVoyelles = 0;
let voyelles = ['a', 'e', 'i', 'o', 'u', 'y'];
for (let lettre of mot) {
if (voyelles.includes(lettre.toLowerCase())) {
nbVoyelles ++;
}
}
return nbVoyelles;
}
On aurait pu l'écrire d'encore plein d'autres manières, mais au moins là on ne vérifie pas pour chaque voyelle. On a une liste des voyelles, et on demande pour chaque lettre "est-ce que cette lettre en minuscule est dans la liste des voyelles?". C'est généralement plus lisible.
On essaie aussi d'utiliser l'anglais au maximum, pour rester cohérent avec les mot-clefs et les noms de fonctions du langage qui sont en anglais. Mais après pour son code personnel c'est selon l'envie.
- Edité par Genroa 14 août 2018 à 15:27:32
/!\ Si je cesse de répondre c'est parce que vous êtes venus poster sans avoir suivi les cours de base sur le sujet. /!\
Dans ce contexte, let et var servent à la même chose : définir une variable locale. (c'est juste qu'on n'utilise pratiquement plus var, qui est obsolète et dangereux dans 99% des cas). Le problème ne vient pas de là. La fonction est correcte. Que contient la variable squamate?
De plus, quel est le message d'erreur que retourne Firefox? Il aide toujours beaucoup à trouver l'erreur.
- Edité par Genroa 14 août 2018 à 15:44:43
/!\ Si je cesse de répondre c'est parce que vous êtes venus poster sans avoir suivi les cours de base sur le sujet. /!\
Dans ce contexte, let et var servent à la même chose : définir une variable locale. (c'est juste qu'on n'utilise pratiquement plus var, qui est obsolète et dangereux dans 99% des cas). Le problème ne vient pas de là. La fonction est correcte. Que contient la variable squamate?
De plus, quel est le message d'erreur que retourne Firefox? Il aide toujours beaucoup à trouver l'erreur.
- Edité par Genroa il y a environ 5 heures
"Dangereux", un peu abusif non ?
Les gens qu'on interroge, pourvu qu'on les interroge bien, trouvent d'eux-mêmes les bonnes réponses.
désolée de n'avoir pas répondu Genroa, je soutenais mon projet 1 et avais quelques petites choses à corriger !
quand j'écris la fin du code à partir de console.log, j'ai le souhait de demander à la machine de me calculer le nombre de voyelles contenues dans le mot : squamate
et c'est ça que la machine me refuse.
Sur firefox le message est que "squamate" est non défini ...
comment pourrais je écrire le code pour qu'il soit valable pas seulement pour un mot mais pour tous les mots que je lui soumettrai ?
function compterNbVoyelles(mot) {
var nbVoyelles = 0;
for (i = 0; i < mot.length; i++) {
var lettre = mot[i].toLowerCase();
if ((lettre === "a") || (lettre === "e") || (lettre === "i") || (lettre ==="o") || (lettre === "u") || (lettre === "y")) {
nbVoyelles ++;
}
}
return nbVoyelles;
}
console.log("le nombre de voyelles est : " + compterNbVoyelles(squamate));
squamate est une variable nommée squamate. "squamate" est une chaine de caractères, contenant les lettres s, q, u, a, etc. Ce sont deux choses différentes.
- Edité par Genroa 15 août 2018 à 17:01:09
/!\ Si je cesse de répondre c'est parce que vous êtes venus poster sans avoir suivi les cours de base sur le sujet. /!\
Tu peux voir les variables comme des tickets de pressing. Lorsque tu fais ça:
var maValeur = 6;
maValeur est une variable, et 6 est une valeur. Donc 6 est stocké quelque part en mémoire, et tu peux y accéder via maValeur qui référence cette valeur. On simplifie souvent en disant qu'on "stocke" 6 dans maValeur.
Une chaine de caractères est une valeur, définie grâce aux guillemets:
var monNom = "Bruno";
Lorsqu'on appelle une fonction, on peut donner une variable référençant une valeur, ou directement une valeur:
var maChaine = "squamate";
var nombreVoyelles = compterNombreVoyelles(maChaine);
// Ou:
var nombreVoyelles = compterNombreVoyelles("squamate");
Mais ce sont deux choses bien différentes. Sans les guillemets, la machine s'attend à ce que squamate soit une variable et pas une chaine. Comme aucune variable nommée squamate n'a été définie avant d'être utilisée, il s'arrête et lance l'erreur.
- Edité par Genroa 15 août 2018 à 20:42:23
/!\ Si je cesse de répondre c'est parce que vous êtes venus poster sans avoir suivi les cours de base sur le sujet. /!\
Merci beaucoup de tout cela Genroa ... c'est bien plus clair comme cela ... je retente mon code et te fais signe
encore merci et bonne journée
Régine Djalo
nombre de voyelles d'un mot
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.