dupontL2
Saison 2 : Magie de JS dans le DOM
Exemple 1
Exemple 2
HTML
Magie du JS
End of saison 1
Special event
Function Style, Method Style
The main difference between the function style and the use of the `filter() or map()` method lies
in the programming paradigm they represent.
🥇**Function Style**: The function style represents the procedural programming paradigm.
🎖️ **Method Style**: The method style represents the functional programming paradigm.
DS : 30minutes Mercredi P1
Thème : Films, genres, notes, années
const films = [
{ titre: "Inception", genre: "SF", note: 9, annee: 2010 },
{ titre: "Titanic", genre: "Romance", note: 8, annee: 1997 },
{ titre: "Interstellar", genre: "SF", note: 10, annee: 2014 },
{ titre: "Amélie", genre: "Comédie", note: 7, annee: 2001 },
{ titre: "Avatar", genre: "SF", note: 7, annee: 2009 }
];
Extraire la liste des titres des films.
Donner les films par genre.
Vérifier si tous les films sont sortis après 1990.
Trouver le film dont le titre est "Titanic".
Vérifier s’il existe au moins un film avec une note ≥ 9.
Tester si la liste des genres contient "Comédie".
Sélectionner les films de genre SF.
Calculer la somme des notes des films.
JavaScript ↔ Python
🍕JavaScript ↔ Python
Les principales opérations sur les collections : filter, map, reduce, groupBy, find, some, every et includes.
JavaScript | Python | JavaScript |
filter() | compréhension de liste | sélectionner |
map() | compréhension de liste | transformer |
reduce() | boucle for | accumuler |
groupBy() | defaultdict + for | regrouper |
find() | next() + générateur | trouver un élément |
some() | any() | au moins un |
every() | all() | tous |
includes() | in | contient |
1. filter()
// JavaScript
const parisiens = etudiants.filter(e => e.ville === "Paris");
// Python
parisiens = [
e for e in etudiants
if e["ville"] == "Paris"
]
2. map()
// JavaScript
const noms = etudiants.map(e => e.nom);
// Python
noms = [e["nom"] for e in etudiants]
3. reduce()
// JavaScript
const total = etudiants.reduce((acc, e) => {
return acc + e.age;
}, 0);
// Python
total = 0
for e in etudiants:
total += e["age"]
4. groupBy()
// JavaScript
const groupes = Object.groupBy(
etudiants,
e => e.ville
);
// Python
from collections import defaultdict
groupes = defaultdict(list)
for e in etudiants:
groupes[e["ville"]].append(e)
5. find()
// JavaScript
const etudiant = etudiants.find(
e => e.nom === "Alice"
);
// Python
etudiant = next(
(e for e in etudiants if e["nom"] == "Alice"),
None
)
6. some()
// JavaScript
const existe = etudiants.some(
e => e.ville === "Paris"
);
// Python
existe = any(
e["ville"] == "Paris"
for e in etudiants
)
7. every()
// JavaScript
const tousParisiens = etudiants.every(
e => e.ville === "Paris"
);
// Python
tous_parisiens = all(
e["ville"] == "Paris"
for e in etudiants
)
8. includes()
// JavaScript
const villes = ["Paris", "Lyon", "Marseille"];
villes.includes("Paris");
// Python
villes = ["Paris", "Lyon", "Marseille"]
"Paris" in villes
Exemple complet : grouper les étudiants par ville
Données Python :
etudiants = [
{"nom": "Alice", "ville": "Paris"},
{"nom": "Bob", "ville": "Lyon"},
{"nom": "Chloé", "ville": "Paris"},
{"nom": "Alice", "ville": "Marseille"},
{"nom": "Bob", "ville": "Lyon"}
]
Équivalent du reduce JavaScript :
groupes = {}
for e in etudiants:
ville = e["ville"]
if ville not in groupes:
groupes[ville] = []
groupes[ville].append(e)
🛟Mémo
· filter() → [ ... for ... if ... ]
· map() → [ ... for ... ]
· reduce() → for + accumulateur
· groupBy() → defaultdict + for
· find() → next(...)
· some() → any()
· every() → all()
· includes() → in
ficher → lien
