vendredi 27 décembre 2019

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é.



Aucun commentaire:

Enregistrer un commentaire

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...