ruby - 计算 Ruby 数组中相同的字符串元素

标签 ruby arrays count

我找不到解决这个问题的简单方法

例如我们有一个数组:

["a", "a", "a", "a", "a", "b", "b", "c", "a", "a", "a"]

我需要用这种方式计算相同的元素:

[["a", 5], ["b", 2], ["c", 1], ["a", 3]]

最佳答案

使用 chunk方法对相同的元素进行分组,然后使用 map[letter, array] 对转换为 [letter, count]

arr     = ["a", "a", "a", "a", "a", "b", "b", "c", "a", "a", "a"]
counted = arr.chunk { |x| x }.map { |a, b| [a, b.count] } 
# => [["a", 5], ["b", 2], ["c", 1], ["a", 3]]

关于ruby - 计算 Ruby 数组中相同的字符串元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27892083/

相关文章:

arrays - 如何将数组保存到 Realm 对象

r - 跨几列,计算对的实例

javascript - Java 脚本 - 计算偶数个左括号和右括号

c# - 在 LINQ 中选择计数

ruby-on-rails - 如何验证 Rails Controller 中的存在和正则表达式格式?

ruby-on-rails - 错误 : Rake Aborted. 未初始化的常量设置

javascript - 如何向现有对象添加原型(prototype)属性

javascript - 将 jQuery inArray 与 JavaScript 对象数组结合使用

php - 从 PHP -> Ruby 解密 2C2P PKC7

Ruby:获取定义当前执行代码的类