You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将包含nil的数组按4元素分组求和(nil视为0)

数组分组求和(nil视为0)

给定数组:

[1, 2, 3, 4, 5, nil, 7, 8, 9, nil, nil, 12]

要实现按4个元素为一组求和,nil视为0,最终得到[10, 20, 21],可以用Ruby的数组方法快速实现:

实现代码

arr = [1, 2, 3, 4, 5, nil, 7, 8, 9, nil, nil, 12]
result = arr.each_slice(4).map do |group|
  group.sum { |num| num || 0 }
end

p result # 输出: [10, 20, 21]

步骤拆解

  • each_slice(4):将原数组按每4个元素分割为子数组,得到[[1,2,3,4], [5,nil,7,8], [9,nil,nil,12]]
  • sum { |num| num || 0 }:对每个子数组求和,同时把nil替换为0计算(num || 0确保nil被当作0处理)

兼容旧Ruby版本的写法

如果使用Ruby 2.4以下版本(sum方法2.4才引入),可以用inject替代:

result = arr.each_slice(4).map { |group| group.inject(0) { |total, num| total + (num || 0) } }

内容的提问来源于stack exchange,提问作者Spyros

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 16:35:21