189 lines
4.9 KiB
JavaScript
189 lines
4.9 KiB
JavaScript
/* 1. Nettoyer et passer en majuscule */
|
|
function nettoyerEtMajuscules(str) {
|
|
return str.trim().toUpperCase();
|
|
}
|
|
|
|
console.log("1. " + nettoyerEtMajuscules(" Bonjour le monde "));
|
|
|
|
console.log("");
|
|
|
|
/* 2. Analyse de voyelles */
|
|
function analyserVoyelles(str) {
|
|
const voyelles = ["a", "e", "i", "o", "u", "y"];
|
|
const strArr = str.split("");
|
|
|
|
let voyellesCount = 0;
|
|
let voyellesArr = [];
|
|
|
|
strArr.forEach((char) => {
|
|
if (voyelles.includes(char.toLowerCase())) {
|
|
voyellesCount++;
|
|
if (!voyellesArr.includes(char.toLowerCase())) {
|
|
voyellesArr.push(char.toLowerCase());
|
|
}
|
|
}
|
|
});
|
|
|
|
return `2. Il y a ${voyellesCount} voyelles : ${voyellesArr.join(", ")}`;
|
|
}
|
|
|
|
console.log(analyserVoyelles("J'apprends JavaScript"));
|
|
|
|
console.log("");
|
|
|
|
/* 3. Fonctions fléchées simples */
|
|
const doubler = (x) => x * 2;
|
|
console.log("3. Doubler 5 : " + doubler(5));
|
|
|
|
const inverser = (str) => str.split("").reverse().join("");
|
|
console.log("3. Inverser 'JavaScript' : " + inverser("JavaScript"));
|
|
|
|
const estPair = (n) => n % 2 === 0;
|
|
console.log("3. 4 est pair ? " + estPair(4));
|
|
|
|
console.log("");
|
|
|
|
/* 4. Fonctions fléchées et tableaux */
|
|
const carreTableau = (tab) => tab.map(x => x * x);
|
|
console.log("4. Carré des nombres 1, 2, 3 et 4 : " + carreTableau([1, 2, 3, 4]));
|
|
|
|
const nombresImpairs = (tab) => tab.filter(x => x % 2 !== 0);
|
|
console.log("4. Nombres impairs parmi 1, 2, 3, 4, 5 : " + nombresImpairs([1, 2, 3, 4, 5]));
|
|
|
|
console.log("");
|
|
|
|
/* 5. Moyenne pondérée */
|
|
function moyennePonderee(valeurs, poids) {
|
|
|
|
let total = 0;
|
|
let sommePoids = 0;
|
|
|
|
for (let v = 0; v < valeurs.length; v++) {
|
|
for (let p = 0; p < poids.length; p++) {
|
|
total += valeurs[v] * poids[p];
|
|
sommePoids += poids[p];
|
|
}
|
|
}
|
|
return total / sommePoids;
|
|
}
|
|
|
|
console.log("5. Moyenne pondérée de [10, 15, 20], [1, 2, 1] : " + moyennePonderee([10, 15, 20], [1, 2, 1]));
|
|
|
|
console.log("");
|
|
|
|
/* 6. Valeur extrême d'un tableau */
|
|
function valeurExtremes(tab) {
|
|
|
|
const smallest = Math.min(...tab);
|
|
const biggest = Math.max(...tab);
|
|
const ecartAbsolu = biggest - smallest;
|
|
|
|
console.log("6. Valeur minimale : " + smallest);
|
|
console.log("6. Valeur maximale : " + biggest);
|
|
console.log("6. Écart absolu : " + ecartAbsolu);
|
|
}
|
|
|
|
valeurExtremes([3, 7, 1, 12]);
|
|
|
|
console.log("");
|
|
|
|
/* 7. Vérification de palindrome */
|
|
function estPalindrome(str) {
|
|
return str.toLowerCase() === str.toLowerCase().split("").reverse().join("") ?
|
|
str + " est un palindrome" :
|
|
str + " n'est pas un palindrome";
|
|
}
|
|
|
|
console.log("7. " + estPalindrome("Kayak"));
|
|
console.log("7. " + estPalindrome("Voiture"));
|
|
|
|
console.log("");
|
|
|
|
/* 8. Fréquence des lettres */
|
|
function frequenceLettres(str) {
|
|
|
|
const frequencies = {};
|
|
|
|
str.split("").forEach(letter => {
|
|
frequencies[letter] = (frequencies[letter] || 0) + 1;
|
|
}
|
|
);
|
|
|
|
console.log("8. ", frequencies);
|
|
}
|
|
|
|
frequenceLettres("JavaScript est un langage puissant");
|
|
|
|
console.log("");
|
|
|
|
/* 9. Factorielle récursive */
|
|
function factorielle(n) {
|
|
|
|
if (n < 0) alert("n doit être supérieur à 0 !")
|
|
|
|
if (n === 0 || n === 1) return 1;
|
|
return n * factorielle(n - 1);
|
|
}
|
|
|
|
console.log("9. 5! = " + factorielle(5));
|
|
|
|
console.log("");
|
|
|
|
/* 10. Analyse d'une phrase */
|
|
function statistiquesPhrase(str) {
|
|
|
|
const nbWords = str.split(" ").length;
|
|
|
|
const words = str.split(" ")
|
|
.sort((a, b) => b.length - a.length);
|
|
|
|
const longestWord = words[0]
|
|
const shortestWord = words.reverse()[0];
|
|
|
|
console.log(` 10. Statistiques de la phrase "${str}" :
|
|
- Nombre de mots : ${nbWords}
|
|
- Mot le plus long : ${longestWord}
|
|
- Mot le plus court : ${shortestWord}
|
|
`);
|
|
}
|
|
|
|
statistiquesPhrase("JavaScript est un langage puissant");
|
|
|
|
console.log("");
|
|
|
|
/* 11. Tableaux combinés */
|
|
const fusionFiltrage = function (tab1, tab2) {
|
|
return [...new Set([...tab1, ...tab2])]
|
|
.filter((n) => n % 2 === 0 && n > 10)
|
|
.sort((a, b) => a - b);
|
|
}
|
|
const tab1 = [1, 4, 9, 2];
|
|
const tab2 = [4, 3, 13, 18];
|
|
console.log(fusionFiltrage(tab1, tab2));
|
|
|
|
console.log("");
|
|
|
|
/* 12. Age détaillé */
|
|
function calculerAgeDetaille(dateNaissance) {
|
|
const birthdate = new Date(dateNaissance);
|
|
const today = new Date();
|
|
|
|
let years = today.getFullYear() - birthdate.getFullYear();
|
|
let months = today.getMonth() - birthdate.getMonth();
|
|
let days = today.getDate() - birthdate.getDate();
|
|
|
|
if (days < 0) {
|
|
months--;
|
|
const lastMonth = new Date(today.getFullYear(), today.getMonth(), 0);
|
|
days += lastMonth.getDate();
|
|
}
|
|
|
|
if (months < 0) {
|
|
years--;
|
|
months += 12;
|
|
}
|
|
|
|
return `${years} ans, ${months} mois, ${days} jours`;
|
|
}
|
|
|
|
console.log(calculerAgeDetaille("2000-06-20")); |