使用Javascript未定义的数组参数

使用Javascript未定义的数组参数,javascript,arrays,Javascript,Arrays,我不明白为什么这个函数返回未定义的: function sumArray(array) { array.reduce(function(result, item) { return result + item; }) } array = [1,2,3] sumArray(array) 我尝试过类似的方法,但效果很好(见下文),所以我不确定它是否特定于作为数组的参数 function sayNumber(num) { return num + 1; } num = 1

我不明白为什么这个函数返回未定义的:

function sumArray(array) {
  array.reduce(function(result, item) {
    return result + item;
  })
}

array = [1,2,3]

sumArray(array)
我尝试过类似的方法,但效果很好(见下文),所以我不确定它是否特定于作为数组的参数

function sayNumber(num) {
 return num + 1;
} 

num = 1

sayNumber(num)

您实际需要的是再添加一条
return
语句

function sumArray(array) {
  //here
  return array.reduce(function(result, item) {
    return result + item;
  });
}

array = [1,2,3];

sumArray(array);
//6

您实际需要的是再添加一条
return
语句

function sumArray(array) {
  //here
  return array.reduce(function(result, item) {
    return result + item;
  });
}

array = [1,2,3];

sumArray(array);
//6

函数
sumArray
没有从
array.reduce
返回结果。在
数组之前插入
return
。reduce

函数
sumArray
不会从
数组返回结果。reduce
。在
数组之前插入
return
。reduce

它返回
未定义的
,因为
sumArray
函数没有return语句

(传递给
reduce
的匿名函数有一个,但这是一个不同的函数)

如果要返回调用
array.reduce的结果,则必须明确说明:

return array.reduce(etc, etc…

它返回
undefined
,因为
sumArray
函数没有返回语句

(传递给
reduce
的匿名函数有一个,但这是一个不同的函数)

如果要返回调用
array.reduce的结果,则必须明确说明:

return array.reduce(etc, etc…

您应该返回函数sumArray的值 像这样:

function sumArray(array) {
  return array.reduce(function(result, item) {
    return result + item;
  })
}

您应该返回函数sumArray的值 像这样:

function sumArray(array) {
  return array.reduce(function(result, item) {
    return result + item;
  })
}

因为您的函数
sumArray
不返回任何内容。任何没有显式返回内容的函数都会返回“undefined”。您只需调用array.reduce方法,但不返回它,因此它实际上没有任何要返回的内容,因为您的函数
sumArray
不返回任何内容。任何没有显式返回内容的函数都会返回“undefined”。您只需调用array.reduce方法,但不返回该方法,因此它实际上没有任何需要执行的操作return@safikabis,很高兴提供帮助,欢迎使用Stack Overflow!如果此答案或任何其他答案解决了您的问题,请将其标记为已接受。@safikabis,很乐意提供帮助,欢迎使用Stack Overflow!如果此答案或任何其他答案解决了您的问题,请将其标记为已接受。