使用Ruby,有什么简单的方法来计算nxm数组的每一列中有多少真?

nop*_*ole 5 ruby

给定一个布尔的nx m数组:

[[true, true, false],
 [false, true, true],
 [false, true, true]]
Run Code Online (Sandbox Code Playgroud)

什么是一种简单的方法可以返回"该列中有多少真实?"

结果应该是

[1, 3, 2] 
Run Code Online (Sandbox Code Playgroud)

sep*_*p2k 10

使用transpose获取一个数组,其中每个子数组代表一列,然后将每列映射到其中的trues 数:

arr.transpose.map {|subarr| subarr.count(true) }
Run Code Online (Sandbox Code Playgroud)

这是一个带有inject的版本,应该在1.8.6上运行,没有任何依赖:

arr.transpose.map {|subarr| subarr.inject(0) {|s,x| x ? s+1 : s} }
Run Code Online (Sandbox Code Playgroud)