Javascript 1
Ces exercices sont ceux de la séance : ils sont intercalés dans les slides, juste après le concept qu’ils font travailler. Cette page les rassemble pour que vous puissiez les reprendre à votre rythme.
La documentation de Javascript est disponible ici ou là.
Exercice 1 — Additionner 42
🎯 Parcourir un tableau avec les trois formes de boucle.
Ajouter 42 à chaque élément du tableau, avec while, puis for, puis for of.
const numbers = [20, 30, 42, 66, 99];
// Attendu : [62, 72, 84, 108, 141]
console.log(numbers); Exercice 2 — La somme d'un tableau
🎯 Accumuler une valeur au fil d'une boucle.
Calculer la somme des éléments du tableau en utilisant for of.
const numbers = [20, 30, 42, 66, 99]
// Attendu : 257
💡 On reverra cet exercice avec reduce() en fin de séance.
Exercice 3 — Trois façons d'écrire une fonction
🎯 Reconnaître les syntaxes de fonction que vous croiserez dans du vrai code.
Écrire la fonction multiply(a, b) de trois façons : déclaration, fonction anonyme stockée dans une variable, fonction fléchée en une ligne.
// 1. function multiply(...)
// 2. const multiply2 = function (...)
// 3. const multiply3 = (...) => ...
// Les trois doivent afficher 42 Exercice 4 — Une closure qui compte
🎯 Comprendre qu'une fonction retient l'environnement dans lequel elle est née.
Écrire createCounter() qui retourne une fonction : chaque appel renvoie 1, 2, 3… Deux compteurs créés séparément ne doivent pas partager leur valeur.
function createCounter() {
// à vous
}
const a = createCounter();
const b = createCounter();
console.log(a(), a(), a()); // 1 2 3
console.log(b()); // 1
Bonus : createAdder(n) retourne une fonction qui ajoute n à son argument.
Exercice 5 — Manipuler un objet
🎯 Lire, ajouter et parcourir les propriétés d'un objet.
À partir de l’objet ci-dessous : afficher la ville, ajouter la propriété job, puis afficher toutes les clés et toutes les valeurs.
const user = { name: "Julien", age: 31, city: "Clermont-Ferrand" }
// 1. Afficher la ville
// 2. Ajouter user.job = "Développeur"
// 3. Afficher les clés, puis les valeurs (Object.keys / Object.values) Exercice 6 — Afficher chaque couleur
🎯 Utiliser une méthode de tableau plutôt qu'une boucle manuelle.
Afficher dans la console chacune des valeurs du tableau, avec forEach().
const colors = ["blue", "red", "green", "yellow", "cyan"]
// Attendu : blue red green yellow cyan Exercice 7 — map() — transformer chaque élément
🎯 Produire un nouveau tableau de même longueur.
Récupérer uniquement les prénoms des utilisateurs avec map().
const users = [
{ name: "Julien", age: 31 },
{ name: "Louise", age: 24 },
{ name: "Bastien", age: 22 },
]
// Attendu : ["Julien", "Louise", "Bastien"]
Bonus : reprendre l’exercice « Additionner 42 » et le réécrire avec map(). Combien de lignes gagnées ?
Exercice 8 — filter() — garder certains éléments
🎯 Produire un nouveau tableau plus court.
Récupérer les personnes de moins de 26 ans avec filter().
const users = [
{ name: "Julien", age: 25 },
{ name: "Louise", age: 24 },
{ name: "Bastien", age: 22 },
{ name: "Raphaël", age: 28 },
{ name: "Alexandre", age: 42 },
]
// Attendu : Julien (25), Louise (24), Bastien (22) Exercice 9 — find() — le premier qui correspond
🎯 Voir la différence entre « filtrer » et « trouver ».
Récupérer l’objet { name: "Julien", age: 31 } avec find(). Attention : il y a deux Julien.
const users = [
{ name: "Julien", age: 31 },
{ name: "Louise", age: 28 },
{ name: "Bastien", age: 22 },
{ name: "Alexandre", age: 42 },
{ name: "Julien", age: 55 },
]
// Attendu : { name: "Julien", age: 31 }
Que retourne find() quand rien ne correspond ?
Exercice 10 — some() et every()
🎯 Répondre par oui ou non sur tout un tableau.
Vérifier qu’au moins une personne a plus de 40 ans avec some(), puis que toutes sont majeures avec every().
const users = [
{ name: "Julien", age: 31 },
{ name: "Louise", age: 24 },
{ name: "Alexandre", age: 42 },
]
// Attendu : true, puis true Exercice 11 — Trier par âge
🎯 Trier sans casser le tableau d'origine.
Trier les utilisateurs par âge croissant avec sort(), puis avec toSorted(), puis en ordre décroissant.
const users = [
{ name: "Julien", age: 31 },
{ name: "Louise", age: 24 },
{ name: "Bastien", age: 22 },
];
// Attendu : Bastien (22), Louise (24), Julien (31)
Après votre sort(), affichez users. Que constatez-vous ?
Exercice 12 — reduce() — tout réduire à une valeur
🎯 Remplacer une boucle d'accumulation par une seule expression.
Reprendre la somme du tableau, cette fois avec reduce().
const numbers = [20, 30, 42, 66, 99]
// Attendu : 257
Bonus : calculer l’âge moyen des utilisateurs de l’exercice précédent.
Exercice 13 — Tout enchaîner en une expression
🎯 Écrire une transformation complète en une seule expression.
Récupérer les prénoms des personnes de moins de 30 ans, en majuscules, sans passer par une variable intermédiaire.
const users = [
{ name: "Julien", age: 31 },
{ name: "Louise", age: 24 },
{ name: "Bastien", age: 22 },
{ name: "Alexandre", age: 42 },
];
// Attendu : ["LOUISE", "BASTIEN"]