You can simplify the arrays construction, too: (with slight reformatting of the
arrays output)
irb2.1.1> arrays = Array.new(3) { Array.new }
#2.1.1 => [[], [], []]
irb2.1.1> 100.times {|id| arrays.sample.push(id) }
#2.1.1 => 100
irb2.1.1> arrays
#2.1.1 => [[0, 2, 6, 8, 9, 11, 14, 16, 17, 18, 22,
24, 29, 31, 37, 42, 47, 49, 53, 54, 57,
58, 60, 68, 69, 73, 75, 79, 80, 81, 83,
88, 91, 94, 95, 96],
[1, 3, 12, 13, 20, 25, 26, 28, 33, 34,
38, 39, 43, 44, 48, 50, 52, 59, 63, 65,
70, 72, 74, 77, 78, 82, 86, 87, 89, 97],
[4, 5, 7, 10, 15, 19, 21, 23, 27, 30,
32, 35, 36, 40, 41, 45, 46, 51, 55, 56,
61, 62, 64, 66, 67, 71, 76, 84, 85, 90,
92, 93, 98, 99]]
irb2.1.1> arrays.map(&:size)
#2.1.1 => [36, 30, 34]
On 2014-Jul-31, at 12:00 , Eric Saupe <[email protected]> wrote:
> I knew there would be a nice simpler Ruby way. I love the second solution,
> Rob. Below is the updated example.
>> id = 100
>> arrays = [Array.new, Array.new, Array.new]
>> arrays.sample.push(id)
>
> On Thursday, July 31, 2014 8:45:33 AM UTC-6, Rob Biedenharn wrote:
>
> On 2014-Jul-30, at 10:59 , Eric Saupe <[email protected]> wrote:
>
>> To expand on what Scott is saying here is some code that gives an example of
>> what he is referring to.
>>
>> id = 100
>> x = rand(1..3)
>> arrays = [Array.new, Array.new, Array.new]
>> selected_array = arrays[x]
>> selected_array.push(id)
>
> And to make it a bit more flexible, you could do:
>
> arrays = [ Array.new, Array.new, Array.new ]
> x = rand(arrays.size)
> arrays[x].push(id)
>
> or even:
>
> arrays = [ Array.new, Array.new, Array.new ]
> arrays.sample.push(id)
>
> http://www.ruby-doc.org/core-2.1.2/Array.html#method-i-sample
>
> -Rob
>
>>
>> On Tuesday, July 29, 2014 8:05:16 PM UTC-6, Scott Ribe wrote:
>> On Jul 29, 2014, at 7:33 PM, Dave Castellano <[email protected]> wrote:
>>
>> > Novice question:
>> >
>> > I need to assign an item id to one of 3 arrays randomly but can't figure
>> > out how to specify the correct array by combining "arr" and the randomly
>> > generated number...
>> >
>> > id = "100"
>> > x = rand(1..3)
>> >
>> > arr1 = Array.new
>> > arr2 = Array.new
>> > arr3 = Array.new
>> >
>> > selected_array = "#{'arr' + x}" *** Not sure how to do this ****
>> >
>> > selected_array.push(id)
>> >
>>
>> While you could append the name and eval, that's not really a clean
>> approach. Just use an array of arrays. Or if else...
>>
>>
>> --
>> Scott Ribe
>> [email protected]
>> http://www.elevated-dev.com/
>> (303) 722-0567 voice
>>
>>
>>
>>
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Ruby on Rails: Talk" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To post to this group, send email to [email protected].
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/rubyonrails-talk/62d3b861-c606-4936-8540-08caae33e8fc%40googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Ruby on Rails: Talk" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/rubyonrails-talk/931a7b70-e8bf-464a-90d8-ae0f4682ee3a%40googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/rubyonrails-talk/DB2AC111-429D-47A8-9497-9F988036BA24%40agileconsultingllc.com.
For more options, visit https://groups.google.com/d/optout.