Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

251
Views
Claves duplicadas de hash en ruby

Sé que hash no almacena claves duplicadas. Pero quiero saber si ese comportamiento predeterminado se puede cambiar de acuerdo con los requisitos, ¿es eso posible? Daré el código de muestra aquí.

 keys_array = [ 'key1', 'key2' ] values_array = [ {"A": { "id": "1" }}, {"B": { "id": "2" }} ] results = keys_array.zip(values_array ).to_h

Aquí la salida es exactamente lo que quería {"key1"=>{:A=>{:id=>"1"}}, "key2"=>{:B=>{:id=>"2"}}}

Pero si las teclas se repiten, por ejemplo

 keys_array = [ 'key1', 'key1' ] in which 'key1' key is repeated, result will be {"key1"=>{:B=>{:id=>"2"}}}

Pero quiero {"key1"=>{:A=>{:id=>"1"}}, "key1"=>{:B=>{:id=>"2"}}} Sé cómo agrupar y todo, pero cambiará el formato de resultado Así que no quiero usar eso

Quiero este resultado {"key1"=>{:A=>{:id=>"1"}}, "key1"=>{:B=>{:id=>"2"}}} donde está key1 una tecla repetida. También tenga en cuenta que estos valores de matriz no son fijos, es dinámico

¡Agradezco enormemente su ayuda!

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Puede alterar el comportamiento de un hash con compare_by_identity .

 h = Hash.new.compare_by_identity h["key1"] = 1 h["key1"] = 2 ph #=> {"key1"=>1, "key1"=>2}

Nunca he visto una manera útil para esto.

over 4 years ago · Santiago Trujillo Report

0

La estructura de datos que está buscando se llama multimapa . Por supuesto, es posible implementar uno en Ruby. Sólo tienes que hacerlo. (O encuentre una biblioteca que lo haga por usted).

Sin embargo, ni el núcleo ni la biblioteca estándar contienen una implementación multimapa.

over 4 years ago · Santiago Trujillo Report

0

De ninguna manera con un hash, podría usar una matriz de hash en su lugar:

 [{"key1"=>{:A=>{:id=>"1"}}}, {"key1"=>{:B=>{:id=>"2"}}}]
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!