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