Ich habe ein ArrayRuby: Welche Methode wird für Array von Hashes verwendet, um eine Zeichenfolge mit allen Hashwerten zu erhalten?
[{name: "vivek"},{name:"ramesh"},{name: "suresh"},{name:"ganesh"}]
Ich möchte ein Verfahren zu schaffen, die Ausgabe als
"vivek,ramesh,suresh and ganesh".
zurück, wenn es nur zwei Hashes sind wie
[{name: "vivek"},{name: "ramesh"}]
Ausgang
sollte"vivek and ramesh"
, wenn die Namen sind mehr als 5 Ausgabe sollte „vivek, Ramesh, Suresh, nilash, ganesh etc ..“ sein
arr=[{name: 'vivek'},{name: 'Ganesh'},{name: 'Suresh'},{name: 'Ramesh'},{name: 'Bavesh'}]#,{name: 'Mukesh'}]
a = arr.size
case a
when 1
puts arr[0][:name]
when 2
puts arr[0][:name]+" and "+arr[1][:name]
when 3..5
ar = []
i=0
while i<arr.size-2
ar << arr[i]
i += 1
end
ar.each{|hash| printf "#{hash[:name]}"+","}
printf "#{arr[-2][:name]} and #{arr[-1][:name]}."
puts ""
when 6..100
ar = []
i=0
while i<4
ar << arr[i]
i += 1
end
ar.each{|hash| printf "#{hash[:name]}"+","}
printf "#{arr[4][:name]} etc..."
puts ""
else
puts "Error"
end
ich habe wie this..but ich weiß, sollte es einen besseren Weg, dies zu tun mit geeigneten Methoden können .. jemand helfen
str = [names.length> 1? Namen [0..5] .join (","): nil] .join << "etc .." ??? – Vivek