Good Ruubyist way

47 views
Skip to first unread message

Love U Ruby

unread,
May 24, 2013, 9:56:39 AM5/24/13
to rubyonra...@googlegroups.com
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
b = a + [nil]
p a #=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
p b #=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, nil]

Is there any other Rubyist way to get the `b` array from `a` array?

--
Posted via http://www.ruby-forum.com/.

Walter Lee Davis

unread,
May 24, 2013, 10:00:13 AM5/24/13
to rubyonra...@googlegroups.com
b = a.push nil

Walter
> --
> 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 rubyonrails-ta...@googlegroups.com.
> To post to this group, send email to rubyonra...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/2da174969111a227ea087d4b8798a1a3%40ruby-forum.com?hl=en-US.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>

Walter Lee Davis

unread,
May 24, 2013, 10:01:18 AM5/24/13
to rubyonra...@googlegroups.com
Oh, duh, never mind, that pushes it onto a also.

Walter

On May 24, 2013, at 9:56 AM, Love U Ruby wrote:

Colin Law

unread,
May 24, 2013, 10:03:29 AM5/24/13
to rubyonra...@googlegroups.com
On 24 May 2013 14:56, Love U Ruby <li...@ruby-forum.com> wrote:
> a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
> b = a + [nil]
> p a #=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
> p b #=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, nil]
>
> Is there any other Rubyist way to get the `b` array from `a` array?

If what you really want is to add a nil element to a then you can just do
a << nil
or, as Walter suggested
a.push nil

Colin

Walter Lee Davis

unread,
May 24, 2013, 10:03:34 AM5/24/13
to rubyonra...@googlegroups.com
Okay, this works:

1.9.3-p392 :009 > a
=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

1.9.3-p392 :010 > b = [a, nil].flatten
=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, nil]

1.9.3-p392 :011 > b
=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, nil]
1.9.3-p392 :012 > a
=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]


> To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/04B8F6E4-96C9-4101-96A3-6F239B074F87%40wdstudio.com?hl=en-US.

Love U Ruby

unread,
May 24, 2013, 11:20:52 AM5/24/13
to rubyonra...@googlegroups.com
Colin Law wrote in post #1110051:
@Colin - I don't want to modify the array `a`. Thus `push` and `<<`
can't be helpful. :)

Colin Law

unread,
May 24, 2013, 11:34:48 AM5/24/13
to rubyonra...@googlegroups.com
OK, I thought it was worth checking. Often people do not ask the
question that they should.

Colin

Jordon Bedwell

unread,
May 25, 2013, 2:08:18 PM5/25/13
to rubyonra...@googlegroups.com
On Fri, May 24, 2013 at 10:33 AM, Paul Julian <bpj...@gmail.com> wrote:
> a = [1,2,3,4,5,6,7,8,9,10]
> b= a.reverse.reverse

Can't tell if you are trolling or if you think that's actually a good
idea. How about just doing:

a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
b = a.dup
Reply all
Reply to author
Forward
0 new messages