如何编写group(n, arr)函数实现数组每n项分组求和?
group(n, arr) 功能实现方案 实现规则对齐
先明确需要覆盖的所有需求点:
- 将输入数字数组按照每
n个元素为一组的规则切分 - 分别计算每个分组内的元素累加和
- 若最后一组元素数量不足
n,直接对剩余全部元素求和,不做截断、补值处理 - 最终返回所有分组和组成的新数组
通用代码实现(JavaScript版本)
function group(n, arr) { const res = []; // 以固定步长n遍历原数组 for (let startIndex = 0; startIndex < arr.length; startIndex += n) { // 截取当前起点开始的n个元素,计算组内总和 const currentGroup = arr.slice(startIndex, startIndex + n); const groupSum = currentGroup.reduce((sum, num) => sum + num, 0); res.push(groupSum); } return res; }
效果验证
拿需求中的测试用例验证:
执行调用:
group(2, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
返回结果:[3, 7, 11, 15, 19, 11],完全匹配预期输出
边界场景说明
- 当
n=1时,每个元素单独成组,返回值与原数组元素完全一致 - 当原数组长度小于
n时,直接返回包含全数组总和的单元素数组 - 生产环境使用时可补充基础校验:确保
n为正整数、传入数组为纯数字类型,避免出现切片异常、计算结果为NaN等问题
内容的提问来源于stack exchange,提问作者user14772481
相关产品推荐
相关产品推荐

