Issue #11076 has been updated by mame (Yusuke Endoh).


baweaver (Brandon Weaver) wrote:
> Answer 2: The transformed value, like `group_by`:
> 
> ```ruby
> [1, 2, 3].group_by(&:even?)
> => {false=>[1, 3], true=>[2]}
> 
> [1, 2, 3].tally_by(&:even?)
> => {false => 2, true => 1}
> ```

If we have `tally`, we can implement this behavior easily: `[1, 2, 3].map {|x| x.even? }.tally`.  Is a new method really needed just for a shorthand of this behavior?

----------------------------------------
Feature #11076: Enumerable method count_by
https://bugs.ruby-lang.org/issues/11076#change-76688

* Author: haraldb (Harald Bttiger)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
----------------------------------------
I very often use `Hash[array.group_by{|x|x}.map{|x,y|[x,y.size]}]`.

Would be nice with to have a method called `count_by`:

~~~ruby
array = ['aa', 'aA', 'bb', 'cc']
p array.count_by(&:downcase) #=> {'aa'=>2,'bb'=>1,'cc'=>1}
~~~



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>