Sobes.tech

Frontend

/** * Implémenter la fonction sumPromises, qui prend * en argument des promesses et retourne la somme * des résultats de leur résolution. * * La fonction peut accepter n'importe quel nombre d'arguments. * Vous pouvez utiliser n'importe quelle API de promesses. */ // Exemple d'utilisation const promise1 = Promise.resolve(1); const promise2 = Promise.resolve(2); sumPromises(promise1, promise2).then(console.log); // 3

171

// Il est nécessaire d'implémenter la méthode groupBy, qui étend les méthodes standard des tableaux. // La méthode doit retourner une version groupée du tableau — un objet, // dans lequel les clés sont les résultats de l'appel de la fonction fn(arr[i]) pour chaque élément, // et les valeurs sont des tableaux contenant tous les éléments du tableau d'origine avec cette clé. // code ici // Exemple 1 const array1 = [ { id: 1 }, { id: 1 }, { id: 2 } ]; const fn = (item) => item.id; console.log(array1.groupBy(fn)); // { // 1: [{ id: 1 }, { id: 1 }], // 2: [{ id: 2 }] // } // Exemple 2 const array2 = [1, 2, 3]; console.log(array2.groupBy(String)); // { // "1": [1], // "2": [2], // "3": [3] // } // Exemple 3 const array3 = [1.3, 0.5, 1.4]; console.log(array3.groupBy(Math.round)); // { // 3: [1.3], // 1: [0.5, 1.4] // }

150

/** * Implémenter la fonction wrapper runOnce, qui prend * une fonction et retourne une nouvelle fonction. La nouvelle * fonction ne peut être appelée qu'une seule fois, toutes * les appels suivants retournent undefined. * * La fonction enveloppée peut accepter des arguments * et retourner un résultat. */ function runOnce(fn) { // votre code } const logHello = (name) => { console.log(`bonjour, ${name} !`) }; const logHelloOnce = runOnce(logHello); console.clear(); logHelloOnce('Oleg'); // 'bonjour, Oleg !' logHelloOnce('Olga'); // undefined

125

/** * Il est nécessaire d'écrire une fonction qui prend une URL en entrée, * effectue une requête GET à cette URL et retourne les données (json). * Pour obtenir les données, utiliser fetch. * On ne peut utiliser que l'API Promise. * En cas d'erreur lors de la requête, réessayer 5 fois. * Si au final, il n'est pas possible d'obtenir les informations, retourner l'erreur "URL spécifiée inaccessible". */ function get(url) { // code ici } get(url) .then(res => console.log(res)) .catch(err => console.error(err))

114

// On vous donne une chaîne composée de lettres latines, d'espaces et de signes de ponctuation. // Une chaîne est appelée pangramme si elle contient chacune des 26 lettres latines au moins une fois. // Déterminez si la chaîne est un pangramme. const LETTERS = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']; function isPangram(text) { // votre code ici } console.log(isPangram('A pangram or holoalphabetic sentence is a sentence using every letter of a given alphabet at least once.')); // -> false console.log(isPangram('Waltz, bad nymph, for quick jigs vex.')); // -> true

87