vendredi 27 décembre 2019

TD Filtre


"0 : 35 ans"
"1 : 36 ans"
"2 : 40 ans"

"3 : 43 ans"

let i = 1;
for (let pers of tabPers) {
  console.log(`${i++} : ?  ans`);
}

let i = 1;
for (let { ? } of tabPers) {
  console.log(`${i++} : ${a} ans`);
}

let tabPersF = [];
for (let { age, sex } of tabPers) {
    if ( ? ) {
        tabPersF.push( ?); // stocker l'âge
    }
}

TD filtre map and co

Ajouter un point à chaque élève en utilisant un tableau:

let etudiant_1 = 12,
    etudiant_2 = 15,
    etudiant_3 = 17,
    etudiant_4 = 8;

const TAB = [etudiant_1,etudiant_2,etudiant_3,etudiant_4];

function parcours(tab,fx){
  let passed = [];
  for(let val of tab){
    passed.push(fx(val));}
    return(passed);
}

function add(x){
  return(x+1);}

let t = parcours(TAB,add);

code

Ajouter un point à chaque élève en utilisant un tableau d'objets :

let etudiant_1 = {note :12},
    etudiant_2 = {note:15},
    etudiant_3 = {note: 17},
    etudiant_4 = {note:8};
 
let etudiant_5 = {note :10},
    etudiant_6 = {note:3},
    etudiant_7 = {note: 19},
    etudiant_8 = {note:14};
 
const TAB = [etudiant_1,etudiant_2,etudiant_3,etudiant_4];
const TAB2 = [etudiant_5,etudiant_6,etudiant_7,etudiant_8];

function parcours(tab,fx){
  let passed = [];
  for(let val of tab){
    passed.push(fx(val));}
    return(passed);
}

function add({note}){
  return (note + 1);}

let r = parcours(TAB,add);

let b = parcours(TAB2,add);

code


Etude du code :
let T = [2,3,-1]
function forEach(array, fx) {
for (let i = 0; i < array.length; i++)
fx(array[i],i,array);
}

function bonus(v,i,t){
  if (v>0) t[i]+=(t[i]*0.2);
}

function malus(v,i,t){
 if (v<0) t[i]+=(t[i]*0.2);
}

forEach(T, bonus);
forEach(T, malus);

Le tableau array passé en paramètre est modifié.
Les fonctions bonus et malus pointent sur les valeurs du tableau.
La fonction forEach(T,malus) s'exécute sur la tableau array préalablement modifié par forEach(T,bonus).

Une autre version du code:

let T = [2,3,-1]

function forEach(array, fx) {
  let passed = [];
  for (let val of array){
    passed.push(fx(val));}
    console.log(passed);
}

function bonus(v){
    if (v>0) v+=(v*0.2);
    return(v);
}

function malus(v){
    if (v<0) v+=(v*0.2);
    return(v);
}

forEach(T, bonus);
forEach(T, malus);

Dans cette version, il y a création d'un nouveau tableau rempli de valeurs calculées à l'aide de fonctions qui prennent en paramètre une recopie des valeurs du tableau initial.
Ces fonctions retournent une nouvelle valeur, indépendante de celle du tableau initial qui n'est pas modifié.



jeudi 26 décembre 2019

Objet.assign

Bien comprendre la différence entre :

var o1 = { a: 1 };
var o2 = { b: 2 };
var o3 = { c: 3 };

var obj = Object.assign(o1, o2, o3);
console.log(obj); // { a: 1, b: 2, c: 3 }
console.log(o1);  // { a: 1, b: 2, c: 3 }, l'objet cible est aussi modifié

et

var o1 = { a: 1 };
var o2 = { b: 2 };
var o3 = { c: 3 };

var obj = Object.assign({},o1, o2, o3);
console.log(obj); // { a: 1, b: 2, c: 3 }
console.log(o1);  // { a: 1, b: 2, c: 3 }, l'objet cible n'est pas modifié 

Les propriétés communes sont assignées selon l'ordre des paramètres

TOP révisions - Convertisseur

Nous voudrions à partir d'un tableau de température en degré ℃ obtenir les valeurs en degré °F. Ou encore convertir un tableau de prix en € en $. 




Code


mardi 24 décembre 2019

TOP révisions - Transforme

Ce code permet:

  •  d'ajouter l'attribut âge à chaque objet 
  • d'afficher le nom des hommes avec leur civilité "MR"
  • d'afficher le tableau contenant l'âge de tous les individus
  • d'afficher le nom des personnes majeures

Fonction filter qui prend en paramètre le tableau à filtrer et le test
Fonction homme qui prend en paramètre le sexe

Refaire le code en utilisant des fonctions pour la civilité, l'âge, etc... 

T = transf(tabPers,setAge) : affiche le tableau d'objets qui contient l'âge
setAge() : permet d'ajouter l'attribut âge
transf() : renvoie le tableau d'objet qui contient les âges
homme(): renvoie 1 si homme, 0 sinon
filter(T, homme) : filtre les hommes
printCiviliteH : ajoute "MR" devant le nom des hommes
transf(tH, printCiviliteH): renvoie "MR" + nom
getAge() : renvoie l'âge 
transf(tHM, getAge) : affiche un tableau d'âges
tHM = filter(tH, majeur) : filtre les personnes majeures
transf(tHM, getAge) : affiche le nom des personnes majeures
transf(thM, getAge) : affiche l'âge des personnes majeures


Code avec modification mais ça ne marche pas encore très bien...
A retravailler à l'aide de ce code


lundi 23 décembre 2019

Le père Noël va bientôt passer


Oh Oh Oh

Tableau de cartes


Compléter le code pour créer un tableau contenant les cartes d’un jeu de (4*13 = )52.

let dictionnary = { 'H': '\u2665', 'C': '\u2663', 'D': '\u2666', 'S': '\u2660',  1: 'A', 11: 'J', 12: 'Q', 13: 'K'};

function cardToString({suit,value}) { //
    if (!dictionnary[value]==0) value=dictionnary[value];
    return value+dictionnary[suit];
}

const cards = [],suits = ['H', 'C', 'D', 'S'];

for (let val of suits){
  for (let j =1; j<14; j++){
  let suit = val;
  let value = j;
cards.push({ suit,value });
}

}

for (let c of cards){
   console.log(`${c.suit}${c.value}`);

}

for (let c of cards){
   console.log(`${cardToString(c)}`);
}


Code

Oh ça marche !

Contenu d'un noeud

Etude de la différence entre: Element. innerHTML:  renvoie le HTML Element. textContent: renvoie le contenu textuel du noeud et de ses desce...