Forum: Ruby Multidimensional Array

Posted by John M. (john_m73)
on 2012-11-28 15:15
Hi ,

Currently I am using Ruby and a beginner

I have the following multidimensional Array:

[[value1, value1_other1 ,value1_other2], [value2,
value2_other1,value2_other2], [value3, value3_other1,value3_other2]]

but i would like to get like this

[['value1', value1_other1 , value1_other2], ['value2', value2_other1,
value2_other2], ['value3', value3_other1, value3_other2]]


Can anyone please help me in doing this
Posted by Jan E. (jacques1)
on 2012-11-28 15:33
Hi,

what do you mean by 'value1'? Do you want to convert the value into a 
string?

Just loop through the subarrays and replace the first element of each 
one with its string representation (the result of to_s).
Posted by Alan Forrester (aforrester)
on 2012-11-28 15:45
(Received via mailing list)
On Wed, Nov 28, 2012 at 2:15 PM, John M. <lists@ruby-forum.com> wrote:
>
> [['value1', value1_other1 , value1_other2], ['value2', value2_other1,
> value2_other2], ['value3', value3_other1, value3_other2]]
>
>
> Can anyone please help me in doing this

Enumerable and array documentation are your friends:

http://www.ruby-doc.org/core-1.9.3/Array.html
http://ruby-doc.org/core-1.9.3/Enumerable.html

your_array = [[value1, value1_other1 ,value1_other2], [value2,
value2_other1,value2_other2], [value3, value3_other1,value3_other2]]

new_array = your_array.collect{|y| [y[0].to_s,y[1..3]].flatten}

Alan
Posted by John M. (john_m73)
on 2012-11-28 16:53
Thanks a lot for the help , tried

your_array.collect{|y| [y[0].to_s,y[1..3]].flatten}

and did work fine
Posted by 7stud -- (7stud)
on 2012-11-28 23:54
Alan Forrester wrote in post #1086898:
>
> your_array = [[value1, value1_other1 ,value1_other2], [value2,
> value2_other1,value2_other2], [value3, value3_other1,value3_other2]]
>
> new_array = your_array.collect{|y| [y[0].to_s,y[1..3]].flatten}
>

new_array = data.map do |arr|
  [
    arr[0].to_s,
    *arr[1..-1]
  ]
end
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.