Multiple values for the same key in a Hash

D

Dominic Son

Hi. There's got to be an easy way to do this.

I simply want multiple iteams (etc, price, quantity, and name) appended
to a key..

There's got to be a simple way (...right?)
 
D

dpenney

Dominic said:
Hi. There's got to be an easy way to do this.

I simply want multiple iteams (etc, price, quantity, and name) appended
to a key..

There's got to be a simple way (...right?)

Just add the items as an array or another container object.
 
R

Robert Head

Dominic said:
Hi. There's got to be an easy way to do this.

I simply want multiple iteams (etc, price, quantity, and name) appended
to a key..

There's got to be a simple way (...right?)

Uh... Wouldn't a hash of hashes do the trick?

For example,
my_hash[:key][:price] = 1.99
my_hash[:key][:quantity] = 5
...

or

my_hash[:key] = { :price => 1.99, :quantity => 5 }

or whatever the syntax is.
 
D

Dominic Son

Yes, i was thinking your later suggestion, but how do i iterate through
them..

the price, and quanity come back too containated (ie : 1.995 ) do i have
to mess with a .split and reg exp at this point? please say it isn't so!




Robert said:
Dominic said:
Hi. There's got to be an easy way to do this.

I simply want multiple iteams (etc, price, quantity, and name) appended
to a key..

There's got to be a simple way (...right?)

Uh... Wouldn't a hash of hashes do the trick?

For example,
my_hash[:key][:price] = 1.99
my_hash[:key][:quantity] = 5
...

or

my_hash[:key] = { :price => 1.99, :quantity => 5 }

or whatever the syntax is.
 
R

Robert Klemme

Hi. There's got to be an easy way to do this.

I simply want multiple iteams (etc, price, quantity, and name) appended
to a key..

There's got to be a simple way (...right?)

Like this?
11:09:28 [~]: irbs
require 'pp' => true
Entry = Struct.new:)price, :quantity, :name) => Entry
h = Hash.new {|h,k| h[k] = Entry.new} => {}
h[:foo].price = 10 => 10
h[:bar].name = "bar" => "bar"
h[:foo].name = "foo" => "foo"
pp h
{:bar=>#<struct Entry price=nil, quantity=nil, name="bar">,
:foo=>#<struct Entry price=10, quantity=nil, name="foo">}
=> nil

robert
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,215
Messages
2,571,113
Members
47,708
Latest member
SharonMaes

Latest Threads

Top