arrays - 在循环中转换我的程序,但它在数组中
问题描述
我有一个包含 1 个 381 个元素的数组的程序。我必须根据字符大小突出显示元素,但我确实喜欢这样:
print "Nombre de handle avec 2 caractères : "
puts jnr.count { |w| w.length == 2 }
print "Nombre de handle avec 3 caractères : "
puts jnr.count { |w| w.length == 3 }
print "Nombre de handle avec 4 caractères : "
puts jnr.count { |w| w.length == 4 }
print "Nombre de handle avec 5 caractères : "
puts jnr.count { |w| w.length == 5 }
print "Nombre de handle avec 6 caractères : "
puts jnr.count { |w| w.length == 6 }
print "Nombre de handle avec 7 caractères : "
puts jnr.count { |w| w.length == 7 }
print "Nombre de handle avec 8 caractères : "
puts jnr.count { |w| w.length == 8 }
print "Nombre de handle avec 9 caractères : "
puts jnr.count { |w| w.length == 9 }
print "Nombre de handle avec 10 caractères : "
puts jnr.count { |w| w.length == 10 }
print "Nombre de handle avec 11 caractères : "
puts jnr.count { |w| w.length == 11 }
print "Nombre de handle avec 12 caractères : "
puts jnr.count { |w| w.length == 12 }
print "Nombre de handle avec 13 caractères : "
puts jnr.count { |w| w.length == 13 }
print "Nombre de handle avec 14 caractères : "
puts jnr.count { |w| w.length == 14 }
print "Nombre de handle avec 15 caractères : "
puts jnr.count { |w| w.length == 15 }
print "Nombre de handle avec 16 caractères : "
puts jnr.count { |w| w.length == 16 }
但我想知道是否可以将其简化为一个循环,但知道它在一个数组中,这些值非常特殊,当我尝试“while”时它不起作用。
先感谢您 !
解决方案
你可以group_by(&:length)
在你拥有的单词数组上创建一个由相同键分组的具有相同长度的单词散列,然后遍历散列并相应地打印
hash = jnr.group_by(&:length)
hash.each do |length, arr_of_words|
puts "Nombre de handle avec #{length} caractères : #{arr_of_words.count}"
end
例子:
[4] pry(main)> hash = ["Volvo", "BMW", "Ford", "Mazda", "XXX", "YYY"].group_by(&:length)
=> {5=>["Volvo", "Mazda"], 3=>["BMW", "XXX", "YYY"], 4=>["Ford"]}
[5] pry(main)> hash.each do |length, arr_of_words|
[5] pry(main)* puts "Nombre de handle avec #{length} caractères : #{arr_of_words.count}"
[5] pry(main)* end
Nombre de handle avec 5 caractères : 2
Nombre de handle avec 3 caractères : 3
Nombre de handle avec 4 caractères : 1
推荐阅读
- python - python中的FastDictCache
- asp.net - Web 服务将 id 发送到另一个源并返回信息
- ionic-framework - 我如何检查文件是否存在离子
- javascript - 致命错误:JavaScript 堆内存不足——Node v12.18.1 和 Nuxt
- javascript - Javascript CORS 被阻止
- reactjs - 如何将页面限制为仅登录用户
- nginx - 通过 Nginx 反向代理处理 Socket.IO 请求
- api - Azure 安全中心解除警报的授权令牌
- c# - 如何让手数脚本与 NinjaTrader 一起使用
- azureservicebus - 服务总线、事件网格和事件中心的开源等价物