god*_*yan 1 ruby arrays string
我有:
@fruit = ["Apples, Oranges, Bananas", "Apples", "Bananas, Pears", "Bananas, Apples, Pears", "Pears"]
Run Code Online (Sandbox Code Playgroud)
我想用它做两件不同的事情,先把它变成一个纯数组,每个只有一个实例:
["Apples", "Oranges", "Bananas", "Pears"]
Run Code Online (Sandbox Code Playgroud)
其次,我希望能够确定数组中给定实例的数量:
@fruit.count("Apples") = 3
Run Code Online (Sandbox Code Playgroud)
第三,是否可以按实例数量对数组进行排序:
@fruit.sort = ["Apples", "Apples", "Apples", "Bananas", "Bananas", "Bananas", "Pears", "Pears", "Pears", "Oranges"]
Run Code Online (Sandbox Code Playgroud)
我必须使用什么数组/字符串函数来执行此操作?
arr = ["Apples, Oranges, Bananas", "Apples", "Bananas, Pears", "Bananas, Apples, Pears", "Pears"]
hsh = Hash.new { |h, k| h[k] = 0 }
arr.each do |str|
fruits = str.split(/, /)
fruits.each do |fruit|
hsh[fruit] += 1
end
end
p hsh.keys
# => ["Apples", "Oranges", "Bananas", "Pears"]
hsh.keys.each { |fruit| puts "#{fruit}: #{hsh[fruit]}" }
# => Apples: 3
# => Oranges: 1
# => Bananas: 3
# => Pears: 3
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
486 次 |
| 最近记录: |