我正在创建一个函数,它接受一组数字并将它们相乘,但我还没有找到一个可行的解决方案。
这是我到目前为止所得到的:
var total = 0;
var producto = [1,4,7];
function productoria(){
for (var f=0;f<producto.lenght;f++){
if(producto[f]!=0){
total = total + (producto[f]*total);
}
}return total;
}
console.log(productoria());
使用
reduce()
时间很短:带有示例的 MDN文档。基本上减少会像这样工作:
acumulador
当我们希望它保存它们时,我们希望它保存的值存储在哪里。,valorInicial
如果未指定,则采用数组的第一个值(在此示例中:1)。在乘法的情况下,每次迭代我们都将acumulador
每个元素的值相乘,它将作为total
问题变量。不使用箭头函数并使用return
, 的示例将是:箭头函数允许我们省略
return
和{}
。在这种情况下,最终值是单个数字,但我们可以将对象或数组定义为初始值,并像处理对象或数组一样对其进行操作acumulador
。您有 3 个错误:
length
total
为1它会是这样的:
生产者是数组中所有元素的乘积,因此不需要求和,结果从 1 开始相乘。
获取数组生产者的另一种方法是使用递归方法:
像这样的代码要简化得多。
我希望我对解决问题有所贡献,问候。
如果您不想乘以数字 0,我给您一个解决方案:
使用
filter
,因为在您的问题中,您放置了一个没有数字等于 0 的 if 条件->if(producto[f]!=0){
让 myArray = [1, 2, 5, 77, 99, 7, 6, 9]
让乘法 = myArray.reduce((a, b)=> a * b) console.log(乘法)