如何使用ES6+剩余运算符实现求和函数?ES6新手求助
解决ES6求和函数问题
要完成这个使用剩余运算符(rest operator)的求和函数,你可以按照以下步骤实现:
步骤1:使用剩余运算符接收参数
剩余运算符...可以将任意数量的函数参数转换为一个数组。修改函数定义,用...nums捕获所有传入的数字:
const sum = (...nums) => { // 求和逻辑 }
这里nums会是一个包含所有传入数字的数组,比如调用sum(1,2,3)时,nums就是[1,2,3]。
步骤2:用reduce计算数组总和
ES6的数组reduce方法可以简洁地累加数组元素。它接受一个回调函数和初始值(这里初始值设为0,处理没有传入参数的情况):
const sum = (...nums) => { return nums.reduce((accumulator, current) => accumulator + current, 0); }
accumulator:累加器,保存当前的总和current:当前遍历到的数组元素- 初始值
0:确保当没有传入参数时,函数返回0(比如sum()会返回0)
简化写法(可选)
因为是箭头函数,如果函数体只有一行返回语句,可以省略大括号和return:
const sum = (...nums) => nums.reduce((acc, curr) => acc + curr, 0);
验证示例
这个实现完全符合题目要求:
sum(1) // 1 sum(1,2) // 3 sum(1,2,4) // 7 sum(1,2,3,4,5,6,7) // 28
内容的提问来源于stack exchange,提问作者Paulo Henrique Moreira
相关产品推荐
相关产品推荐

