Nombre d'arguments variable

kev85270 Messages postés 464 Statut Membre -  
prosthetiks Messages postés 1309 Statut Membre -
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 1309 Statut Membre 431
 
Voici un joli article pour toi: http://blog.sebarmeli.com/2010/11/12/understanding-array-prototype-slice-applyarguments/
0
prosthetiks Messages postés 1309 Statut Membre 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