rest 参数的用法

题目链接

题目要求:

我的写法为啥不对呢?

const sum = (...args) => {
  var result = 0;
  for(var i = 0; i < args.length; i++) {
    result += args[i];
  }
}

FCC 提示的写法是:

const sum = (...args) => {
  return args.reduce((a, b) => a + b, 0);
}

这里用到了一个 reduce() 方法,这个方法之前课程中没有出现过,我搜了它的用法:接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。

可以理解示例代码的意思了,但是还是不明白为啥我用 for 循环行不通。

你循环没有返回result

啥意思呢,我声明了 var result 的呀

你写的那个循环没有返回值,所以程序只是循环了,并没有把值返回给sum

const sum = (…args) => {
var result = 0;
for(var i = 0; i < args.length; i++) {
result += args[i];
}
return result;//这里要返回你循环之后得出来的值
}

是的,通过了!

在一道题目里尝试不同的解法,也通过了,有点成就感,嘿嘿~

谢谢你的指点!

哈哈哈 是的。通过的时候最爽

1赞