Rails 3:将数组的所有元素相乘

Mex*_*xer 11 ruby

假设我有一个数组A = [1,2,3,4,5]

如何将所有元素与ruby相乘并获得结果?1*2*3*4*5 = 120

如果有一个元素0怎么办?我怎么能忽略这个元素?

DGM*_*DGM 26

这是注入的教科书案例(也称为reduce)

[1, 2, 3, 4, 5].inject(:*)
Run Code Online (Sandbox Code Playgroud)

如下所示,为避免零,

[1, 2, 3, 4, 5].reject(&:zero?).inject(:*)
Run Code Online (Sandbox Code Playgroud)

  • `[array] .reject(&:zero?).inject(:*)`也许吧 (7认同)
  • `inject(1,:*)`会在空数组的情况下避免出现`nil`结果. (4认同)