如何对数组中各字符串的第三个元素求和?
解决方案
假设你使用的是Ruby语言,实现这个求和需求可以按以下步骤操作:
- 遍历数组中的每个字符串,用
split(',')将其按逗号拆分为子数组 - 取出子数组的第三个元素(注意Ruby数组索引从0开始,对应索引为2)
- 将该元素转换为浮点数(通过
to_f方法) - 对所有转换后的数值调用
sum方法完成求和
代码示例
简洁写法(直接求和)
arr = ["1154,1,8.00", "1162,1,8.00", "1161,1,8.00"] total = arr.sum { |str| str.split(',')[2].to_f }
先映射再求和(用map实现)
arr = ["1154,1,8.00", "1162,1,8.00", "1161,1,8.00"] total = arr.map { |str| str.split(',')[2].to_f }.sum
你之前尝试.last失败,大概率是因为没先对字符串做拆分操作——直接调用str.last只会取原字符串的最后一个字符,而不是拆分后子数组的第三个元素。如果一定要用.last,可以直接取拆分后子数组的最后一个元素(刚好是你需要的第三个值):
total = arr.sum { |str| str.split(',').last.to_f }
以上几种方法最终都会得到结果24.0。
内容的提问来源于stack exchange,提问作者Gibson
相关产品推荐
相关产品推荐

