javascript reduce未定义

javascript reduce未定义,javascript,reduce,Javascript,Reduce,我越来越不确定了。代码在没有函数的情况下工作。我做错了什么 var myArr=[1,2,3,4,5]; 函数getSums(arr){ arr.reduce(a=>a+1,0); } 文件。写入(getSums(myArr))三个问题: 使用reduce时,使用前两个参数(至少):累加器和当前条目。(它还有其他参数,但前两个是最常用的参数。) 您的逻辑只是执行a+1,它不是将数组中的值相加,而是将1添加到该条目的值中 您需要从getSums函数返回reduce返回的值 因此: var my

我越来越不确定了。代码在没有函数的情况下工作。我做错了什么

var myArr=[1,2,3,4,5];
函数getSums(arr){
arr.reduce(a=>a+1,0);
}
文件。写入(getSums(myArr))三个问题:

  • 使用
    reduce
    时,使用前两个参数(至少):累加器和当前条目。(它还有其他参数,但前两个是最常用的参数。)

  • 您的逻辑只是执行
    a+1
    ,它不是将数组中的值相加,而是将
    1
    添加到该条目的值中

  • 您需要从
    getSums
    函数返回
    reduce
    返回的值

  • 因此:

    var myArr=[1,2,3,4,5];
    函数getSums(arr){
    返回arr.reduce((和,a)=>和+a,0);
    //^^^^^^            ^^^^   ^    ^^^^^^
    }
    console.log(getSums(myArr))三个问题:

  • 使用
    reduce
    时,使用前两个参数(至少):累加器和当前条目。(它还有其他参数,但前两个是最常用的参数。)

  • 您的逻辑只是执行
    a+1
    ,它不是将数组中的值相加,而是将
    1
    添加到该条目的值中

  • 您需要从
    getSums
    函数返回
    reduce
    返回的值

  • 因此:

    var myArr=[1,2,3,4,5];
    函数getSums(arr){
    返回arr.reduce((和,a)=>和+a,0);
    //^^^^^^            ^^^^   ^    ^^^^^^
    }
    
    console.log(getSums(myArr))
    您需要从函数中
    返回
    。@nenad这是一个箭头函数,默认情况下它有返回?
    getSums
    不是箭头函数。@juhana Ohhhh现在我明白了。谢谢这是你的箭头:
    const getSums=arr=>arr.reduce((sum,a)=>sum+a)
    您需要从函数中
    返回
    。@nenad这是一个箭头函数,默认情况下它有返回?
    getSums
    不是箭头函数。@juhana Ohhhh现在我明白了。谢谢这是你的箭头:
    const getSums=arr=>arr.reduce((sum,a)=>sum+a)
    reduce不需要传递初始值,因为包装器除了一个值之外没有其他值。@LUH3417:
    reduce
    的回调始终接受累加器,它是第一个参数。的确,在这种特殊情况下,我们可以将
    ,0
    关闭调用,因为这是一个求和操作。我通常更喜欢它的清晰性,但这是一种风格。你不需要传递一个初始值来reduce,因为你的包装器除了一个值之外没有其他值。@LUH3417:reduce的回调总是接受累加器,它是第一个参数。的确,在这种特殊情况下,我们可以将
    ,0
    关闭调用,因为这是一个求和操作。我通常更喜欢清晰明了,但这是一种时尚。