Ruby Academy · Lektion

Iterera över hash-tabeller

each, map, select.

Lektion 3 av 413 steg

Iterera över hash-tabeller är en gratis lektion i Ruby Academy på CoddyKit. Detta är lektion 3 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Ruby Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Ruby Academy innehåller totalt 4 lektioner.

Iterera med each

Metoden each besöker varje par. Blocket tar emot nyckeln och värdet.

scores = { math: 90, art: 80 }
scores.each do |subject, score|
  puts "#{subject}: #{score}"
end

each_pair

each_pair är ett alias för each när det gäller hashar. Använd den variant som blir tydligast att läsa.

h = { a: 1, b: 2 }
h.each_pair { |k, v| puts "#{k}=#{v}" }

Iterera endast över nycklar

each_key itererar över nycklar när värdena inte behövs.

h = { name: "Ada", age: 36 }
h.each_key { |k| puts k }

Iterera endast över värden

each_value itererar direkt över värdena.

h = { a: 10, b: 20 }
total = 0
h.each_value { |v| total += v }
puts total

Omvandla med map

map på en hash returnerar en array. Varje par skickas vidare som nyckel och värde.

prices = { pen: 2, book: 5 }
labels = prices.map { |item, p| "#{item}: $#{p}" }
puts labels.inspect

transform_values

transform_values returnerar en ny hash där varje värde har ändrats medan nycklarna behålls.

prices = { pen: 2, book: 5 }
doubled = prices.transform_values { |p| p * 2 }
puts doubled

transform_keys

transform_keys ändrar nycklarna medan värdena behålls. Det är användbart för att konvertera strängar till symboler.

h = { "a" => 1, "b" => 2 }
puts h.transform_keys(&:to_sym)

Filtrera med select

select (aliaset filter) behåller par där blocket returnerar true och returnerar en ny hash.

scores = { a: 90, b: 50, c: 70 }
passing = scores.select { |k, v| v >= 70 }
puts passing

Avvisa par

reject är motsatsen till select. Den tar bort par där blocket returnerar true.

scores = { a: 90, b: 50 }
puts scores.reject { |k, v| v < 60 }

Hitta och räkna

find returnerar det första matchande paret som en array. count med ett block räknar träffarna.

h = { a: 1, b: 2, c: 3 }
puts h.find { |k, v| v == 2 }.inspect
puts h.count { |k, v| v.odd? }

Summera värden

Kombinera values med sum för totalsummor eller använd each_with_object för en anpassad summering.

cart = { apple: 3, pear: 5 }
puts cart.values.sum

Snabb kontroll

Kontrollera era kunskaper om att iterera över hashar.

Sammanfattning

Ni kan nu iterera över hashar:

  • each, each_key, each_value
  • map, transform_values, transform_keys
  • select/reject för filtrering
  • find, count och summering av värden

Nästa steg: standardvärden och sammanslagning.

h = { a: 1, b: 2, c: 3 }
puts h.select { |k, v| v.odd? }
Gratis att börja

Lär dig Ruby med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
29
Lektioner
109

Vanliga frågor

Är lektionen ”Iterera över hash-tabeller” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Ruby Academy, inklusive ”Iterera över hash-tabeller”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Ruby Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Iterera över hash-tabeller”?

each, map, select. Ni övar på Ruby Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Ruby Academy?

Du behöver inga förkunskaper. Utbildningen i Ruby Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.

Hur lång tid tar lektionen ”Iterera över hash-tabeller”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Ruby Academy-lektionen?

Ja. Varje Ruby Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Symboler kontra strängar
  2. Skapa och läsa hash-tabeller
  3. Iterera över hash-tabeller
  4. Standardvärden och sammanfogning
← Tillbaka till Ruby Academy