Ad
  • Custom User Avatar

    Yeah, @muyifeng1988. This solution have a lot of bugs :)

  • Custom User Avatar

    This is correct the above solution would fail with an empty array. Although I think returning nil on an empty array instead of NaN is satisfactory.

  • Custom User Avatar

    I think sum and average can be better, (BTW, other methods are excellent!)

    def sum
    reduce(0, :+)
    end

    def average
    empty? ? NaN : sum / size # As description says average() on an empty array must return NaN
    end

  • Default User Avatar

    This solution is not good enough. If there is an empty array, sum method will return nil, i think it's better to return 0. Also average method will lead to error if size is 0.

    [].reduce(:+) => nil

    0 / 0 => error