/* 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"));