你如何计算ruby数组中的重复项?
例如,如果我的数组有三个a,我怎么能算这个
根据ApiDock,Ruby方法Enumerable#each_with_object
已被弃用.除非它是错误的(说"在Rails的最新稳定版本上弃用"让我怀疑可能是Rails的猴子修补已被弃用),为什么它被弃用了?
是否Enumerable#group_by
保留每个值中的原始订单?当我得到这个:
[1, 2, 3, 4, 5].group_by{|i| i % 2}
# => {1=>[1, 3, 5], 0=>[2, 4]}
Run Code Online (Sandbox Code Playgroud)
是否保证,例如,数组[1, 3, 5]
包含此顺序的元素,而不是,例如[3, 1, 5]
?
有关于这一点的描述吗?
我没有提到钥匙1
和钥匙之间的顺序0
.这是一个不同的问题.
我有一个类似于这样的Ruby数组:
animals = %w(dog cat bird cat dog bird bird cat)
Run Code Online (Sandbox Code Playgroud)
我需要计算数组中每个唯一项的计数.我可以这样做:
dogs = 0
cats = 0
birds = 0
animals.each do |animal|
dogs += 1 if animal == 'dog'
cats += 1 if animal == 'cat'
birds += 1 if animal == 'bird'
end
Run Code Online (Sandbox Code Playgroud)
......但这种做法过于冗长.在Ruby中计算这些独特计数的最简洁方法是什么?