Itterate over an Array Extracting Data

So I have the following array

people = [“Employee 1”, “Secretary”, “Male”, “54”]
[“Employee 2”, “Manager”, “Female”, “44”]
[“Employee 3”, “Chef”, “Female”, “22”]

I would like to iterate over this array pulling out just the ages. How
can I do this?

I tried the following:

x = 0
while x < people.length
puts people[x][3]
x += 1
end

How could I put the results into an array? IRB doesn’t like my code.

On Thu, Sep 17, 2009 at 4:34 AM, Daniel R.
[email protected]wrote:

people = [“Employee 1”, “Secretary”, “Male”, “54”]
[“Employee 2”, “Manager”, “Female”, “44”]
[“Employee 3”, “Chef”, “Female”, “22”]

people # => [“Employee 1”, “Secretary”, “Male”, “54”]

#you (presumably) wanted an array of arrays, it would need to look like
the
one below
people = [[“Employee 1” , “Secretary” , “Male” , “54”],
[“Employee 2” , “Manager” , “Female” , “44”],
[“Employee 3” , “Chef” , “Female” , “22”]]

ages = people.map{|p| p[3] }

ages # => [“54”, “44”, “22”]

people # => [[“Employee 1”, “Secretary”, “Male”, “54”], [“Employee 2”,
“Manager”, “Female”, “44”], [“Employee 3”, “Chef”, “Female”, “22”]]

x = 0
while x < people.length
puts people[x][3]
x += 1
end

How could I put the results into an array? IRB doesn’t like my code.

people = [[“Employee 1”, “Secretary”, “Male”, “54”],[“Employee 2”, “Manager”, “Female”, “44”],[“Employee 3”, “Chef”, “Female”, “22”]]
=> [[“Employee 1”, “Secretary”, “Male”, “54”], [“Employee 2”,
“Manager”, “Female”, “44”], [“Employee 3”, “Chef”, “Female”, “22”]]

ages = people.collect{|person| person[3]}
=> [“54”, “44”, “22”]

Regards,
Rimantas

On Thu, Sep 17, 2009 at 4:34 AM, Daniel R.
[email protected]wrote:

Sorry for the improper spacing, I’m on my Windows computer, forgot that
SciTe doesn’t use monospaced font by default.

people.each {|person| puts person[3]}

PS I had to enter your array differently - what you typed here didn’t
work.

people = [[“Employee 1”, “Secretary”, “Male”, “54”],
[“Employee 2”, “Manager”, “Female”, “44”],
[“Employee 3”, “Chef”, “Female”, “22”]]

On Thu, Sep 17, 2009 at 10:34 AM, Daniel R. [email protected]
wrote:


Paul S.
http://www.nomadicfun.co.uk

[email protected]

Josh C. wrote:

On Thu, Sep 17, 2009 at 4:34 AM, Daniel R.
[email protected]wrote:

Sorry for the improper spacing, I’m on my Windows computer, forgot that
SciTe doesn’t use monospaced font by default.

Thanks for everyone’s help.

On 17 sep 2009, at 11.34, Daniel R. wrote:

So I have the following array

people = [“Employee 1”, “Secretary”, “Male”, “54”]
[“Employee 2”, “Manager”, “Female”, “44”]
[“Employee 3”, “Chef”, “Female”, “22”]

Here you have THREE arrays, of which to are not assigned ANYWHERE.
You forgot the outer brackets and the commans between elements of the
outer array.

How could I put the results into an array? IRB doesn’t like my code.

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


The three things an undertaker should never say to a client:
-Nice doing business with you.
-Welcome back.
-Have a nice day. (The King of ID)

On Thu, Sep 17, 2009 at 6:34 PM, Daniel R. [email protected]
wrote:

x = 0
while x < people.length
puts people[x][3]
x += 1
end

How could I put the results into an array? IRB doesn’t like my code.

people = [[“Employee 1”, “Secretary”, “Male”, “54”],
[“Employee 2”, “Manager”, “Female”, “44”],
[“Employee 3”, “Chef”, “Female”, “22”]]

p people.transpose[3]

Harry

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs