我试图写一个函数,它需要n个整数参数,并返回所有参数的乘积



这是我的实现

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)

参考:

参数

相关内容

  • 没有找到相关文章

最新更新