这是我的实现
function multiplyAll(a, b, c){
return a*b*c
}
这是工作的,但是想象一下我们有10个参数,或者在一个我们甚至不知道将提供多少个参数的情况下?这正是我想要达到的。由于
一个简单的"方法是使用数组作为函数的参数. 像这样:
function foo(args) {
let res = 1;
for(let i = 0; i < args.length; i++){
res = res * args[i];
}
return res;
}
console.log(foo([2,3,4]))
您可以简单地使用扩展语法和reduce来获得所需的结果。
1)
function multiplyAll(...args) {
return args.reduce((acc, curr) => acc * curr, 1);
}
console.log(multiplyAll(2, 3, 4, 5, 6, 7, 10));
2)
const multiplyAll = (...args) => args.reduce((acc, curr) => acc * curr, 1);
console.log(multiplyAll(2, 3, 4, 5, 6, 7, 10));
在ES6中,你现在可以在函数参数中使用扩展运算符。您可以使用以下代码来实现您的目标
function add(...numbers) {
let total = 0;
for (const number of numbers) {
total += number;
}
return total;
}
使用标准库中的arguments
关键字和Array.reduce
函数即可。
function multiplyAll(){
return Array.from(arguments).reduce((a,b) => a * b);
}
您可以使用arguments
:
function argumentsFunction(a,b,c,d){
console.log(arguments); // Object of arguments
}
argumentsFunction(1,2,3,4)
参考:
参数