Algo for ever
let prefix = strs.reduce((acc, str) => str.length < acc.length ? str : acc);
for (let str of strs) {
while (str.slice(0, prefix.length) != prefix) {
prefix = prefix.slice(0, -1);
}
}
return prefix;
};
let res = lol(["dupont","dupond","dupone","dupot"]);
🖋️Devoir sur table : 5 min / level 🥷
This
let me = {
name:"dupont",
ptrMe: function() {console.log(this.name)}
}
, you = {
name:"dupond",
ptrYou: function() {console.log(this.name)}
};
me.print = you.ptrYou;
me.print()
https://docs.google.com/document/d/1TJ8-3_9copZ0o_-GsS-to9wrLJYgPhj84TE_3Nd-XJA/edit?usp=sharing
this: Objet statique
Objet statique
const counter = {
count: 0, next: function () { return ++this.count; }, };Pipeline !
Projet : A rendre avant le 10/12
Projet à rendre (au choix)
https://docs.google.com/document/d/10h_6uHYvPKyLtQPNlUNkr7L_jqS98r0AD3PlAvsHE2g/edit?usp=sharing
https://docs.google.com/document/d/1t0oOJ5Vo2AmxwvLodTaobpY7BOs0_QPIME23wAx08SA/edit?usp=sharing
https://docs.google.com/document/d/1PUUE7HBeqJ2hDh6c5MxJsBS3N0W2xl83l0kaVofl4V4/edit?usp=sharing
https://docs.google.com/document/d/1DYadNNz9MejGkKGWo31DCLhT_Nxnbh94vohXyDaJ_YY/edit?usp=sharing
https://docs.google.com/document/d/1EU2hY-ZjEGV0E9VQVuYry4n_ohApN0OGEfWp1hONrNI/edit?usp=sharing
https://docs.google.com/document/d/1En2R7iD3RabNgeSjYjjofCVxKjXglSNH8_34qgD54SQ/edit?usp=sharing
https://docs.google.com/document/d/1U7StYdejEdcYjezKIkgukU23awAz4nwWLzNq6AF54YY/edit?usp=sharing
La note CC est le MAX(DS, (Projet+DS)/2)
DS : correction
See the Pen students by SuperDupont (@SuperDupont) on CodePen.
🥷DM: Closest value
🥷🥇 Fan club reduce
Voici un code donné à titre d'information 🥇.
🥷Objectif : Faire l'équivalent de l'aggregation dans les BD.
Vacances : achats
Découvrez les méthodes filter, map et reduce en action !
Préparation au DS
See the Pen Calendrier selection Periode by dupont (@dupontcodepen) on CodePen.
Structuration
Lecture
cours
Objectifs du cours
Avant | Après |
const pizzasWithCheese = []; for (let i = 0; i < pizzas.length; i++) { if (pizzas[i].ingredients.includes("🧀")) { pizzasWithCheese.push(pizzas[i]); } } console.log(pizzasWithCheese); const pizzaWithTomato = []; for (let i = 0; i < pizzas.length; i++) { if (pizzas[i].ingredients.includes("🍅")) { pizzaWithTomato.push(pizzas[i]); } } console.log(pizzaWithTomato); const pizzaWithCactus = []; for (let i = 0; i < pizzas.length; i++) { if (pizzas[i].ingredients.includes("🌵")) { pizzaWithCactus.push(pizzas[i]); } } console.log(pizzaWithCactus); | const hasIng = (ing) => (pizza) => pizza.ingredients.includes(ing); const chees = pizzas.filter(hasIng("🧀")), tomato = pizzas.filter(hasIng("🍅")), cactus = pizzas.filter(hasIng("🌵")); |
Code BD
🍕Préparation au DS !
...
🍕Base des données
const pizzas = [
{ name:"queen", ingredients: ["🐷","🍄","🍅","🧀"] },
{ name: "cheese", ingredients: ["🧀", "🍅"]},
{ name: "oriental", ingredients: ["🍅","🐑","🍄","🌶"]},
{ name: "royal", ingredients: ["🍅","🌵"]},
];
🪛 Questions
Trouvez les pizzas avec du 🧀
Trouvez les pizzas avec du 🍅
Trouvez les pizzas avec un ingrédient quelconque (soit du "🍅" ou du "🧀" ou du "🐑" ...)
Trouvez les pizzas avec au moins un ingrédient parmi une liste d'ingrédients
Trouvez les pizzas avec tous les ingrédients d'une liste
Trouvez les pizzas avec viande
Ajoutez pour chaque pizza le type (🐮ou ☘️)
Trouvez l'ensemble des ingrédients "🐷","🍄","🍅","🧀","🐑","🌶","🌵"
Trouvez pour chaque ingrédient le nombre de pizzas l'utilisant ,"🧀":2 …
Trouvez pour chaque ingrédient la liste des pizzas l'utilisant
Ajoutez le prix de chaque pizza
prices = new Map([ ["🍅", 1], ["🐷", 2], ["🌶",2], ["🍄", 5], ["🧀", 5], ["🐑", 2], ["🌵", 10]]);
🖋️Devoir sur table : 5 min
🪛Donner sous forme de dessin le résultat de :
😈Notez que ce code ne correspondrait en rien à une demande de normalisation du pays d'origine.
🪛Completer le code (lien) pour obtenir
DM : CB et map
😈Testez vous !
{ nom: "Dupont", ville: "evry", sex: "f", born: 1903 },
{ nom: "Dupont", ville: "Paris", sex: "f", born: 2004 },
{ nom: "Brusel", ville: "belfort", sex: "h", born: 1930 }
];
const filles_callBack = pers.filter(function(p){
return (p.sex === "f");
});
🪛Comparer ces différentes écritures :
- const filles_callBackArrow = pers.filter(p => p.sex === "f");
- const filles_callBackDest = pers.filter(function( {sex}){
});
- const filles_callBackArrowDestruc = pers.filter( ( {sex} ) => sex === "f" );
🪛Pour chaque transformation donner le résultat sous forme graphique :
Voici les fonctions de CallBack !
function ageVal({ born }) {return born}
function ajout(p) {p["new"] = "hallo";}
function ajout_2(p) {return p["new"] = "hallo";}
function ageObjDestruct({ born :annee }) {return { annee }};
return [p.nom,p.born]
});
🪛filles.map(ajout);
🪛filles.map(ajout_2);
🪛filles.map(p=>p);
🪛filles.map(p=>p["new"]="hallo");
🪛filles.map(ageObj);
🪛filles.map(ageVal);
🪛filles.map(function({ born : annee }) {return { annee }});
🪛filles.map(function({ born :annee, nom }) {return { nom,annee }});
🪛filles.map(function ({ nom, ville }) {
return {
info: `${nom} habite à ${ville}`
}
});