aris
1
What method could I use to do the following:
people = [“person1”,“person2”,“person3”]
issue = [“issue1”,“issue2”,“issue3”,“issue4”,“issue5”,“issue6”]
person1 => issue1
person2 => issue2
person3 => issue3
person1 => issue4
person2 => issue5
person3 => issue6
On Mon, Jun 25, 2012 at 9:06 PM, skolo pen [email protected] wrote:
person3 => issue3
person1 => issue4
person2 => issue5
person3 => issue6
people.cycle.take(issue.size).zip(issue)
Note that this will produce an array of arrays. A Hash doesn’t work for
this because any given key can only appear once.
On 06/26/2012 05:25 AM, Avdi G. wrote:
people.cycle.take(issue.size).zip(issue)
Nice!
Note that this will produce an array of arrays. A Hash doesn’t work for
this because any given key can only appear once.
Hash[people.each_with_index.map {|p, i|
[p, i.step(issue.size - 1, people.size).map {|j| issue[j]}]
}]
=> {“person1”=>[“issue1”, “issue4”],
“person2”=>[“issue2”, “issue5”],
“person3”=>[“issue3”, “issue6”]}
On 06/26/2012 11:14 AM, Hans M. wrote:
issue.group_by.with_index {|i,ii| people[ii % people.size]}
=> {“person1”=>[“issue1”, “issue4”],
“person2”=>[“issue2”, “issue5”],
“person3”=>[“issue3”, “issue6”]}
Ah, that’s just lovely.
issue.group_by.with_index {|i,ii| people[ii % people.size]}
=> {“person1”=>[“issue1”, “issue4”],
“person2”=>[“issue2”, “issue5”],
“person3”=>[“issue3”, “issue6”]}
On Tue, Jun 26, 2012 at 5:25 AM, Avdi G. [email protected]
wrote:
person2 => issue2
people.cycle.take(issue.size).zip(issue)
We can do that shorter
irb(main):004:0> issue.zip(people.cycle)
=> [[“issue1”, “person1”], [“issue2”, “person2”], [“issue3”,
“person3”], [“issue4”, “person1”], [“issue5”, “person2”], [“issue6”,
“person3”]]
Cheers
robert
On Tue, Jun 26, 2012 at 11:28 AM, Robert K.
[email protected] wrote:
people.cycle.take(issue.size).zip(issue)
We can do that shorter
irb(main):004:0> issue.zip(people.cycle)
=> [[“issue1”, “person1”], [“issue2”, “person2”], [“issue3”,
“person3”], [“issue4”, “person1”], [“issue5”, “person2”], [“issue6”,
“person3”]]
PS: if you want proper ordering, you can do
irb(main):005:0> issue.zip(people.cycle) {|i,p| printf “%s => %s\n”, p,
i}
person1 => issue1
person2 => issue2
person3 => issue3
person1 => issue4
person2 => issue5
person3 => issue6
irb(main):006:0> issue.zip(people.cycle).map {|i,p| [p,i]}
=> [[“person1”, “issue1”], [“person2”, “issue2”], [“person3”,
“issue3”], [“person1”, “issue4”], [“person2”, “issue5”], [“person3”,
“issue6”]]
Kind regards
robert