7stud2
(7stud --)
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
···
--
Posted via http://www.ruby-forum.com/.
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 Mon, Jun 25, 2012 at 9:06 PM, skolo pen <lists@ruby-forum.com> wrote:
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
7stud2
(7stud --)
3
issue.group_by.with_index {|i,ii| people[ii % people.size]}
=> {"person1"=>["issue1", "issue4"],
"person2"=>["issue2", "issue5"],
"person3"=>["issue3", "issue6"]}
···
--
Posted via http://www.ruby-forum.com/.
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
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 05:25 AM, Avdi Grimm wrote:
On Mon, Jun 25, 2012 at 9:06 PM, skolo pen <lists@ruby-forum.com > <mailto:lists@ruby-forum.com>> wrote:
--
Lars Haugseth
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 5:25 AM, Avdi Grimm <groups@inbox.avdi.org> wrote:
On Mon, Jun 25, 2012 at 9:06 PM, skolo pen <lists@ruby-forum.com> wrote:
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
people.cycle.take(issue.size).zip(issue)
--
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/
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
···
On Tue, Jun 26, 2012 at 11:28 AM, Robert Klemme <shortcutter@googlemail.com> wrote:
On Tue, Jun 26, 2012 at 5:25 AM, Avdi Grimm <groups@inbox.avdi.org> wrote:
On Mon, Jun 25, 2012 at 9:06 PM, skolo pen <lists@ruby-forum.com> wrote:
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
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"]]
--
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/