我正在尝试实现一个函数,该函数接受数组输入并给出数组的乘积,在 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函数输入。

Python函数不接受数组作为输入

C++ char 数组 - 相同的输入给出不同的输出

我的挤压功能没有按预期工作,我该怎么做才能修复这个功能?

array_merge

javascript 编写一个函数,该函数接受一个字符串数组并返回该数组中最常出现的字符串。如果有多个字符串