如何对数组中的第三个位置求和?

Gib*_*son 1 ruby

我有一个数组记录:

@arrays = ["41,3,4", "39,2,3"]
Run Code Online (Sandbox Code Playgroud)

我想将每个数组的第三个位置相加(4+3)

我试过:

@arrays.sum[3] 
Run Code Online (Sandbox Code Playgroud)

我需要先迭代数组吗?

谢谢!

mu *_*ort 6

您可以给Enumerable#sum一个块来告诉它要添加什么:

arrays.sum { |e| e.split(',')[2].to_i }
Run Code Online (Sandbox Code Playgroud)

  • 在他的例子中微不足道,但如果每个字符串更长,可能会产生性能问题:告诉“#split”仅拆分 3 次。`arrays.sum { |e| e.split(',', 3)[2].to_i }` (3认同)
  • 哦,嘿,“sum”带有内置的“map”参数。这是一个简洁的简写! (2认同)