Les modules se répartissent en trois catégories :
🛩️Analysez ce code !
const arr2 = [1, 2, 3];
const arr1 = [4, 5, 6, 7, 8];
const [small, large] = arr1.length < arr2.length
? [arr1, arr2]
: [arr2, arr1];
console.log(small == arr2); // [1, 2, 3] [4, 5, 6, 7, 8]
const mapToppings = new Map([
["queen", ["🐷", "🍄", "🍅", "🧀"]],
["cheese", ["🧀", "🍅"]],
["oriental", ["🍅", "🐑", "🍄", "🌶"]],
["royal", ["🍅", "🌵"]],
]);
const order1 = [
{ name: "queen", ingredients: mapToppings.get("queen") },
{ name: "cheese", ingredients: mapToppings.get("cheese") },
{ name: "oriental", ingredients: mapToppings.get("oriental") },
{ name: "royal", ingredients: mapToppings.get("royal") },
];
const order2 = [
{ name: "queen-promo", ingredients: mapToppings.get("queen") },
{ name: "royal-promo", ingredients: mapToppings.get("royal") },
];
function intersectionBy(a, b, keyFn) {
const setB = new Set(b.map(keyFn));
return a.filter((item) => setB.has(keyFn(item)));
}
const common = intersectionBy(order1,
order2,
(pizza) => pizza.ingredients);
console.log(common);
// [{ name: "queen", ingredients: [...] }, { name: "royal", ingredients: [...] }]
Objectif : comprendre ce code
- async function* getLines() {
- const data = [
- "# Commentaire ignoré",
- "Ligne utile 1",
- "Ligne utile 2",
- "# Autre commentaire",
- "STOP",
- "Ligne après STOP",
- ];
- for (const line of data) {
- await new Promise((resolve) => setTimeout(resolve, 100)); // simule un délai
- yield line;
- }
- }
- async function processUntilStop(lines) {
- for await (const line of lines) {
- if (line === "STOP") break;
- if (line.startsWith("#")) continue;
- console.log(`Traitement : ${line}`);
- }
- console.log("🔚 Fin du traitement.");
- }
- processUntilStop(getLines());
Asynchrone 🥷🏼
Introduction
Cours
Callback, promesses et Async/Await
BD (callback)
TD
🚀Asynchrone dans votre navigateur (es6)
🛑Création d'un jeu
Le joueur a trois chances pour trouver un nombre secret !
💥Imaginez que vous soyez chef de projet, vous rédigez en urgence un prototype pour les membres de votre équipe. Ce prototype permet à tous de fixer les idées (proto).
👷 Il faudra l'implémenter en JS.
Lecture
Analysez ce code !
class BD {
constructor(db) {
this.db = db;
}
/**
* Finds items based on a query given as a JS object
*
* @param {object} query The query to match against (i.e. {name: 'paris'})
* @param {function} callback The callback to fire when the query has
* completed running
**/
find(query, callback) {
callback(
this.db.filter(function (city) {
for (const [key, value] of Object.entries(query)) {
if (city[key] !== value) {
return false;
}
}
return true;
})
);
}
}
// cities
const db = new BD([
{ name: "Vincennes", population: 40000 },
{ name: "Paris", population: 2161000 },
{ name: "roubais", population: 45000 },
]);
//console.log(s.db);
db.find({ population: 45000 }, function (cities) {
for (let city of cities) {
city["population"] = 50000;
}
});
db.find({ name: "Paris" }, function (cities) {
for (let city of cities) {
city["capital"] = true;
}
});
console.log(db);
db.find({ name: "Paris" }, function (cities) {
const updatedCities = cities.map((city) => ({ ...city, capital: true }));
console.log(updatedCities); // Only updated copies, db remains unchanged
});
Les modules
Lecture : https://v8.dev/features/modules
Slides
Cours
TD
Projet
https://github.com/dupontdenis/SFP-Lib.git
Vidéo
Mise à niveau 25
Javascript
Le DOM
Function/Method
Prototype/Class
🥷cours : https://dupontes6.blogspot.com/p/le-dessous-de-js.html
🥇Bilan
https://github.com/dupontdenis/JSAFONDLAFORME.git
Projet
Pour mieux aborder React
DS
// //dessinez le résultat en mémoire
const people = [
{
firstName: "John",
lastName: "Doe",
mark: 14,
address: {
street: "Champs Elysées",
city: "Paris",
},
},
{
firstName: "Alice",
lastName: "Martin",
mark: 18,
address: {
street: "Rue de Rivoli",
city: "Paris",
},
},
];
const updatedPeople = people.map(
(person) =>
person.firstName === "John"
? { ...person, mark: 16 }
: person
);
console.log(updatedPeople);
Python
Projet : Django
0° Blog
-----------------------
Objectif : intégrations des passagers aux vols.
------------------- no time left !
II partie
Inscription à :
Commentaires (Atom)