Pages

Trouvez une structure avec 10 questions !

Obligatoire !

Trouvez ou construisez une structure d’objets contenant elle‑même des objets, afin de vous entraîner à utiliser les méthodes fonctionnelles de JavaScript.

Autrement dit : Créez un jeu de données riche, avec des objets imbriqués, pour pouvoir pratiquer les méthodes modernes de manipulation de tableaux.


Voici un exemple : pizzas

PizzasJS 

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

Trouvez les pizzas avec au moins un ingrédient parmi une liste

Trouvez les pizzas avec tous les ingrédients d'une liste

Trouvez les pizzas sans viande

Trouvez les pizzas avec viande

Ajoutez pour chaque pizza le type (notVeggie🐮ou veggie ☘️)

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]]);


🛟Voici un autre jeu de données ! 

chaque pizza contient :
un tableau ingredients [ ] 
un objet nutrition { } 

const pizzas = [
  {
    name: "Margherita",
    price: 8,
    ingredients: ["🍅", "🧀", "🌿"],
    nutrition: { calories: 850, vegan: false }
  },
  {
    name: "Veggie Deluxe",
    price: 10,
    ingredients: ["🍅", "🧀", "🌽", "🥦", "🫑"],
    nutrition: { calories: 900, vegan: false }
  },
  {
    name: "Cactus Special",
    price: 12,
    ingredients: ["🌵", "🧀", "🌶️"],
    nutrition: { calories: 780, vegan: false }
  },
  {
    name: "Green Vegan",
    price: 11,
    ingredients: ["🥦", "🫑", "🌽", "🌿"],
    nutrition: { calories: 700, vegan: true }
  }
];


TD : immutable

 Map : → TD

filter

  🚀Objectif comprendre le mécanisme des filtres ! 



Cours : → filter

🛟Github : → filter


🏚️DM

const students = [

  { name: "Alice", age: 20, filiere: "info", notes: [5, "ABJ","ABI"] },

  { name: "Mohamed", age: 20, filiere: "info", notes: [12, 0, 15] },

  { name: "Romain", age: 21, filiere: "info", notes: [12, "ABI", 0] },

  { name: "Bob", age: 22, filiere: "Bio", notes: [12, 14, 16] },

  { name: "Charlie", age: 19, filiere: "Droit", notes: [8, 11, 13] },

];


🪛Donnez le nombre total d’étudiants absents.

Un étudiant est considéré comme absent s’il possède au moins une valeur "ABI" ou "ABJ" dans son tableau notes.


🪛🪛À partir du tableau students, créez un nouveau tableau contenant pour chaque étudiant :

  • son nom

  • son nombre d’absences, c’est‑à‑dire le nombre de valeurs "ABI" ou "ABJ" dans son tableau notes.

[

  { name: "Alice", abs: 2 },

  { name: "Mohamed", abs: 0 },

  { name: "Romain", abs: 1 },

  { name: "Bob", abs: 0 },

  { name: "Charlie", abs: 0 }

]


🥷🏿LearnByYourself

🚀Tentez de comprendre ce code !
const absentRegex = /AB[IJ]/; const nbAbsents = students .filter(s => s.notes.some(n => absentRegex.test(n))) .length;
  1. const absentRegex = /AB[IJ]/;

  2. const a = students
  3.   .filter(s => s.notes.some(n => absentRegex.test(n)))

Learn !

 

  1. function code (start, end, step = 1) {
  2.   return new Array(Math.ceil((end.charCodeAt(0) - start.charCodeAt(0))/step))
  3.   .fill(start.charCodeAt(0))
  4.   .map((x, i) => String.fromCharCode(i*step + start.charCodeAt(0)));
  5. }
  6. console.log(code('a', 'z')); oh !
  7. console.log(code('a', 'z', 3));
  8. console.log(code('c', 'h', 2)); // oh ! 



function code(start, end, step = 1) { const res = []; const startCode = start.charCodeAt(0); const endCode = end.charCodeAt(0); for (let c = startCode; c <= endCode; c += step) { res.push(String.fromCharCode(c)); } return res; }
function code(start, end, step = 1) { const res = []; const startCode = start.charCodeAt(0); const endCode = end.charCodeAt(0); for (let c = startCode; c <= endCode; c += step) { res.push(String.fromCharCode(c)); } return res; }

Le chef de Chrome nous parle !

 C'est quoi ce truc ! 

'#'+'0123456789abcdef'.split('').map(function(v,i,a){ return i>5 ? null : a[Math.floor(Math.random()*16)] }).join('');

Javascript : ref

Introduction Javascript

 



Exercices de JS pour se former

🛠 Exercices JS

Python : ref