Iterera över hash-tabeller
each, map, select.
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}"
endeach_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 totalOmvandla 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.inspecttransform_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 doubledtransform_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 passingAvvisa 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.sumSnabb kontroll
Kontrollera era kunskaper om att iterera över hashar.
Sammanfattning
Ni kan nu iterera över hashar:
each,each_key,each_valuemap,transform_values,transform_keysselect/rejectför filtreringfind,countoch 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? }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
- Symboler kontra strängar
- Skapa och läsa hash-tabeller
- Iterera över hash-tabeller
- Standardvärden och sammanfogning