我正在尝试实现一个函数,该函数接受数组输入并给出数组的乘积,在 Javascript 中跳过 0 但我只能使用 .reduce
Posted
技术标签:
【中文标题】我正在尝试实现一个函数,该函数接受数组输入并给出数组的乘积,在 Javascript 中跳过 0 但我只能使用 .reduce【英文标题】:I am trying to Implement a function which takes array input and gives products of array with skipping 0 in Javascript but I can only use .reduce 【发布时间】:2021-10-08 07:01:35 【问题描述】:function multiplyArray(array)
let product_arr = array.reduce(function (accumulator, currentValue)
return accumulator * currentValue
, 1);
return product_arr;
【问题讨论】:
您应该将您的输入和预期输出添加到您的问题中。欢迎来到 SO。当涉及到asking a good question 和这个question checklist 时,您可能会发现阅读网站help section 很有用。您为解决问题而编写的代码应包含minimal reproducible example,并包含在您的问题中。 听起来像学校作业!return array.reduce((a,v)=>(v||1)*a,1);
(你实际上也没有问过一个问题。)
【参考方案1】:
当数组项为 0
时,您可以默认为 1
。
const multiply = (nums) => nums.reduce((a, b) => a * (b || 1), 1);
console.log(
multiply([0, 1, 2, 0, 3, 4, 0]),
)
【讨论】:
【参考方案2】:您可以检查0
并根据如下所示返回值:
function multiplyArray(array)
let product_arr = array.reduce(function(accumulator, currentValue)
// If value is 0 return accumulator else return value * accumulator
return (currentValue == 0 ? accumulator * 1 : accumulator * currentValue)
, 1);
return product_arr
console.log(multiplyArray([1, 2, 3, 4, 0, 9]))
【讨论】:
以上是关于我正在尝试实现一个函数,该函数接受数组输入并给出数组的乘积,在 Javascript 中跳过 0 但我只能使用 .reduce的主要内容,如果未能解决你的问题,请参考以下文章
有15个数存放在一个数组中,输入一个数,要求用折半法找法找出该数是数组中第几个元素的值。如果该数不在数组中,则输出“无此数”。以15个数用赋初值的方法在程序中给出。要找的数用scanf函数输入。