【问题标题】:Using Reduce method使用 Reduce 方法
【发布时间】:2021-12-26 21:23:04
【问题描述】:

我刚开始学习reduce方法,陷入了这个问题......

  N   answer
123   6
987   24

例如 9 + 8 + 7 = 24,但参数是数字。

这是我尝试过的:

function solution (n){
   let result = new Array (n)
   let answer = result.reduce((a,b) => {
       return a + b 
   })
}

这是我的代码,但我收到了TypeError [Error]: Reduce of empty array with no initial value

【问题讨论】:

  • 您实例化了一个大小为 n 的空数组。它不包含任何东西。您输入的是一个字符串,因此将其转换为 char n.split('') 或 [...n] 或 Array.from(n) 的数组,然后您可以映射到 int 并使用您的 reduce 操作
  • 这能回答你的问题吗? How to find the sum of an array of numbers
  • 这个-> (''+123).split('').reduce((acc,n)=>acc+=parseInt(n),0);

标签: javascript reduce


【解决方案1】:

以下是使用 reduce 计算总和的方法 -

[...String(123)].map(Number).reduce((a,b) => a+b, 0)

【讨论】:

  • 哇,我喜欢这个。请详细说明并向 OP 解释 为什么 这有效。
  • 另外,我相信你不需要0
【解决方案2】:

这个:

let result = new Array (n)

创建一个长度为n的空数组。

为了将一个数字转换为一个数字数组,你可以使用这个小方便的sn-p:

const arr = n.toString().split('').map(Number)

我们将n 作为一个字符串,然后将其拆分为一个字符数组,然后将每个字符映射到其对应的数字。

之后就可以使用reduce函数了:

let answer = arr.reduce((a,b) => {
    return a + b 
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-08
    • 2020-07-08
    • 2021-01-13
    • 2019-10-04
    • 2020-06-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多