Nombre d'arguments variable

kev85270 Messages postés 436 Date d'inscription   Statut Membre Dernière intervention   -  
prosthetiks Messages postés 1189 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Bonjour à tous,
J'ai un tp à faire dans le cadre de mes études en informatique.
Ci dessous, le code JavaScript.
J'ai implementer la function sub() sans trop de soucis, en revanche je doit modifier la fonction adder afin qu'elle acceptee un nombre variable d'argument tel que :



adder()(0); // 0
adder()(1); // 0
adder(mult(2))(1); // 2
adder(mult(2), mult(2))(1); // 4
adder(mult(2), mult(2), mult(2))(1); // 6
adder(mult(2), sub(2), mult(2))(1); // 5

Mon professeur m'indique d'utiliser :

var args = Array.prototype.slice.call(arguments);
[1,2,3].forEach(function(val){console.log(val);});

Mais je ne comprend pas trop.




function adder(l,r){
return function(v){
return l(v) + r(v);
}
}

function mult(v){
return function(e){
return v*e;
}
}
function sub(x,y)
{
return x-y;
}
console.log(adder(mult(2), mult(4))(2));
console.log(sub(0,0));
console.log(sub(2,1));
console.log(sub(2,2));
console.log(sub(2,4));

Pouvez vous m'aider s'il vous plait ?
Merci d'avance.

2 réponses

prosthetiks Messages postés 1189 Date d'inscription   Statut Membre Dernière intervention   431
 
Voici un joli article pour toi: http://blog.sebarmeli.com/2010/11/12/understanding-array-prototype-slice-applyarguments/
0
prosthetiks Messages postés 1189 Date d'inscription   Statut Membre Dernière intervention   431
 
Et appliqué à la fonction adder ça donne:


function adder(){
var args = Array.prototype.slice.call(arguments);
return (function(i){
var result = 0;
for(arg in args){
result += args[arg](i);
}
return result;
});
}

0