Pages

AI microsoft !



Test de copilot (AI microsoft) dans l'éditeur Visual Studio code (code Javascript).




Voir test


Algo for ever

🚀Que fait la fonction lol ?

 const lol = function(strs) {
    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"]);

🆘console.log(res);

Entrainement

💰Les salaires


Nous allons analyser les données d'un ensemble d'entreprises !

En Action

TD : module

 Les modules en actions ! 

lien

🖋️Devoir sur table : 5 min / level 🥷

Que valent les affichages 🪛

const add10 = {
  val: 10,
  addTo: function(array) {
    return array.map(function(elt) {
      return this.val + elt;
    });
  }
};
           
🪛console.log(add10.addTo([5,10,15]));

const add10 = {
  val: 10,
  addTo: function(array) {
    return array.map( v => v + this.val )
  }
};
           
🪛console.log(add10.addTo([5,10,15]));


Cours : module

 

This

  1. let me = {

  2.   name:"dupont",

  3.   ptrMe: function() {console.log(this.name)}

  4.   }

  5.   , you = {

  6.     name:"dupond",

  7.     ptrYou: function() {console.log(this.name)}

  8.   };

  9.     

  10. me.print = you.ptrYou;

  11. me.print()


🚀me.print()





🆘this what's that 

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; }, };  
🥷Il est important de comprendre que this=counter dans la fonction next() par ce que on excute counter.next();

 Pipeline ! 


const counter = {

  count: 0,
  next: function () {
     ++this.count;
     return this;
  },
};


🪳Attention: 

const counter = {

  count: 0,
  next: function () {
    return ++this.count;
  },
};

let fxNext = counter.next;

console.log(fxNext());

🤢Arrow fonction

const counter = {

  count: 0,
  next: () => ++this.count
};



console.log(counter.count);


🍕TD class

 Création de la classe Pizza ! Et oui tout est pizza objet.

🍕TD

Cours : class

DS : correction


ul.insertAdjacentHTML(
  "afterBegin",
  DS.reduce(
    (acc, cur) =>
      acc + `<li data-cohorte=${cur.cohorte}>${cur.name}</li>`,
    ""
  )
);

const showInfoCohorte = function ({ target }) {
    student.innerText = target.dataset.cohorte;
};
ul.addEventListener("click", showInfoCohorte, false);

See the Pen students by SuperDupont (@SuperDupont) on CodePen.

🥷DM: Closest value


const table = new Map([
    [0,'yellowgreen'],
    [150, 'green'],
    [600, 'olive'],
    [750, 'red'],
    [800, 'black'],
]);


🪛Trouvez un algorithme pour trouver la valeur
de la table la plus proche d'une valeur.
600 est la plus proche de la valeur 610.
600 est la plus proche de la valeur 500.

🆘 Pensez à évaluer [...table.keys()]

🥷🥇 Fan club reduce

Voici un code donné à titre d'information 🥇.

🥷Objectif : Faire l'équivalent de l'aggregation dans les BD.

Code 
https://glitch.com/edit/#!/carnation-south-servant

Résultats

👻Réduce


reduce 1

reduce 2
reduce 3
reduce 4
reduce 5
reduce 6



Vacances : achats

 Découvrez les méthodes filter, map et reduce en action !

Vous disposez de 80€ de budget.
Vous indiquez dans votre panier vos achats
Type:Prix:Quantité

Cliquez pour calculer l'estimation d'achat et l'aide à la vente.



Vacances : Réservez votre place !


Selectionnez vos places et Confimez la réservation.





🆘Aide au DS

 🥇Questions

Préparation au DS

See the Pen Calendrier selection Periode by dupont (@dupontcodepen) on CodePen.

Structuration

 

Lecture

🆘 calendrier


cours

Objectifs du cours

🥷Passez au niveau Sup

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


  const findToppins = { toppings: { $in: ["cheese", "pepper"] } };

  try {
    const cursor = await collection.find(findToppins).sort({ name: 1 });
    await cursor.forEach((pizza) => {
      console.log(`${pizza.name} has "cheese" or "pepper" toppings \n`);
    });
  } catch (err) {
    console.error(
      `Something went wrong trying to find the documents: ${err}\n`
    );
  }


Pour tester le code, vous devez mettre en place une vaiable d'environnement


du type : 
mongodb+srv://moz:<password>@cluster0.kkmmj.mongodb.net/?retryWrites=true&w=majority




DOM

 

🍕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

  

const joueurs = [
  { nom: "Benzema", pays: "France", but: 7 },
  { nom: "Mbappe", pays: "FRANCE", but: 8 },
];


🪛Donner sous forme de dessin le résultat de :

const noms = joueurs.map(({ nom }) => nom);

const formatCountry = joueurs.map(function (joueur) {
  joueur.pays = joueur.pays.toLowerCase();
  return joueur;
});

😈Notez que ce code ne correspondrait en rien à une demande de normalisation du pays d'origine.

🪛Completer le code (lien) pour obtenir


🪛Afficher le résultat du code

const formatCountry = joueurs.map( function(play){
  const newPlayer = Object.assign({WorldCup: "US 26"}, play);
  newPlayer.pays = newPlayer.pays.toLowerCase();
  return newPlayer
})

DM : CB et map

  QCM maison

Ecrire sa bibliothèque de fonctions sur les tableaux !

😈Testez vous !


const pers = [
    { 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");
});

Voici le résultat en mémoire !

🪛Comparer ces différentes écritures : 

  • const filles_callBackArrow = pers.filter(p => p.sex === "f");

  • const filles_callBackDest = pers.filter(function( {sex}){
                return (sex === "f");
            });

  • const filles_callBackArrowDestruc = pers.filter( ( {sex} ) => sex === "f" );

Ces écritures sont toutes équivalentes !

🪛Pour chaque transformation donner le résultat sous forme graphique :


Par exemple pour le code suivant
const filles= pers.filter(function(p){
    return (p.sex === "f");
});

const dates = filles.map(function annee( p, index ) {
   return { 
        num : index,
        annee : p.born 
     };
});

Vous dessinez le résultat en mémoire suivant :


Voici les fonctions de CallBack !

    function ageObj({ born }) {return { born }}
    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 }};

Déssinez le résultat pour : 

🪛filles.map(function annee( p, index ) {
   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}`
    }
});



🆘 https://goo.gl/G6u1Cz

🆘Kit de survie

 Le dom de base !

Cours : les méthodes des tableaux

 Cours sur les méthodes d'un tableau !

 



Some, every



rappel : destructuration

🥇map

   

🥷reduce

   

🥇filter

  

🖋️Devoir sur table : 5 min

function isOdd(number) { return number % 2 != 0; }

function isEven(number) { return number % 2 == 0; } function filter(numbers, fn) { // Complete code }
 const numbers = [1, 2, 4, 7, 3, 5, 6],

odd = filter(numbers, isOdd), even = filter(numbers, isEven);