Bird
Raised Fist0
Rubyprogramming~10 mins

Each as the primary iterator in Ruby - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to print each number in the array.

Ruby
numbers = [1, 2, 3, 4, 5]
numbers.[1] do |num|
  puts num
end
Drag options to blanks, or click blank then click option'
Aeach
Bmap
Cselect
Dreduce
Attempts:
3 left
💡 Hint
Common Mistakes
Using map instead of each when you only want to perform an action without creating a new array.
2fill in blank
medium

Complete the code to collect squares of numbers using each.

Ruby
numbers = [1, 2, 3, 4]
squares = []
numbers.[1] do |n|
  squares << n * n
end
puts squares
Drag options to blanks, or click blank then click option'
Areduce
Bmap
Cselect
Deach
Attempts:
3 left
💡 Hint
Common Mistakes
Using map and expecting the original array to change.
3fill in blank
hard

Fix the error in the code to print each key and value from the hash.

Ruby
person = {name: "Alice", age: 30}
person.[1] do |key, value|
  puts "#{key}: #{value}"
end
Drag options to blanks, or click blank then click option'
Amap
Beach
Cselect
Dreduce
Attempts:
3 left
💡 Hint
Common Mistakes
Using map which returns a new array instead of iterating for side effects.
4fill in blank
hard

Fill both blanks to iterate over an array and print each element with its index.

Ruby
fruits = ["apple", "banana", "cherry"]
fruits.[1].[2] do |fruit, index|
  puts "#{index}: #{fruit}"
end
Drag options to blanks, or click blank then click option'
Aeach_with_index
Bmap
Ceach
Dselect
Attempts:
3 left
💡 Hint
Common Mistakes
Using only each without index, or using map which returns a new array.
5fill in blank
hard

Fill all three blanks to create a hash with word lengths for words longer than 3 letters.

Ruby
words = ["cat", "house", "dog", "elephant"]
lengths = {}
words.[1] do |[2]|
  if [2].length > 3
    lengths[[3]] = [3].length
  end
end
puts lengths
Drag options to blanks, or click blank then click option'
Aeach
Bword
Cselect
Dreduce
Attempts:
3 left
💡 Hint
Common Mistakes
Using a transforming method like select or map instead of each for building the hash manually.
Inconsistent block parameter names across the block.

Practice

(1/5)
1. What does the each method do in Ruby when used on an array?
easy
A. It returns a new array with modified items.
B. It runs a block of code once for every item in the array.
C. It changes the array by removing items.
D. It sorts the array in ascending order.

Solution

  1. Step 1: Understand the purpose of each

    The each method is used to run a block of code for every item in a collection like an array.
  2. Step 2: Check what each does to the array

    It does not change or sort the array; it simply processes each item one by one.
  3. Final Answer:

    It runs a block of code once for every item in the array. -> Option B
  4. Quick Check:

    each runs code on each item [OK]
Hint: Remember: each processes items, does not change array [OK]
Common Mistakes:
  • Thinking each modifies the array
  • Confusing each with methods like map
  • Assuming each returns a new array
2. Which of the following is the correct syntax to use each on an array numbers to print each number?
easy
A. each numbers { |num| puts num }
B. numbers.each do num puts num end
C. numbers.each { |num| puts num }
D. numbers.each |num| puts num

Solution

  1. Step 1: Identify correct block syntax with each

    The correct syntax uses each followed by a block with { |variable| ... } or do |variable| ... end.
  2. Step 2: Check each option

    numbers.each { |num| puts num } uses numbers.each { |num| puts num } which is correct. Others have syntax errors or wrong order.
  3. Final Answer:

    numbers.each { |num| puts num } -> Option C
  4. Quick Check:

    Correct block syntax = numbers.each { |num| puts num } [OK]
Hint: Use each { |item| ... } or each do |item| ... end [OK]
Common Mistakes:
  • Writing each numbers instead of numbers.each
  • Missing block delimiters like braces or do-end
  • Not using pipes | | around block variable
3. What is the output of this Ruby code?
fruits = ['apple', 'banana', 'cherry']
fruits.each { |fruit| puts fruit.upcase }
medium
A. APPLE BANANA CHERRY
B. apple banana cherry
C. ['APPLE', 'BANANA', 'CHERRY']
D. Error: undefined method upcase for fruit

Solution

  1. Step 1: Understand what each does with puts fruit.upcase

    The each method runs the block for each fruit, printing the uppercase version.
  2. Step 2: Check output line by line

    It prints 'APPLE', then 'BANANA', then 'CHERRY' each on a new line.
  3. Final Answer:

    APPLE BANANA CHERRY -> Option A
  4. Quick Check:

    each prints uppercase fruits [OK]
Hint: Remember puts prints each item on a new line [OK]
Common Mistakes:
  • Thinking each returns a new array
  • Expecting lowercase output
  • Confusing puts with returning a list
4. What is wrong with this Ruby code snippet?
items = [1, 2, 3]
items.each do item
  puts item * 2
end
medium
A. Array items is empty
B. Using do instead of braces is invalid
C. Cannot multiply numbers inside each
D. Missing pipes around block variable: should be |item|

Solution

  1. Step 1: Check block variable syntax in each do block

    When using do with each, the block variable must be inside pipes: do |item|.
  2. Step 2: Identify the error

    The code misses pipes around item, causing a syntax error.
  3. Final Answer:

    Missing pipes around block variable: should be |item| -> Option D
  4. Quick Check:

    Block variables need pipes | | [OK]
Hint: Always put block variables inside | | with each do [OK]
Common Mistakes:
  • Omitting pipes around block variables
  • Thinking do is invalid with each
  • Assuming multiplication inside each is wrong
5. Given a hash scores = { alice: 10, bob: 15, carol: 12 }, how can you use each to print each name and score in the format Name: Score?
hard
A. scores.each { |name, score| puts "#{name.capitalize}: #{score}" }
B. scores.each { |score, name| puts "#{name}: #{score}" }
C. scores.each { |name| puts "#{name}: #{score}" }
D. scores.each { |name, score| puts "#{score.capitalize}: #{name}" }

Solution

  1. Step 1: Understand each on a hash

    When using each on a hash, the block receives two variables: key and value.
  2. Step 2: Match variables and format output

    The key is the name (symbol), value is the score. Use name.capitalize to print the name nicely.
  3. Final Answer:

    scores.each { |name, score| puts "#{name.capitalize}: #{score}" } -> Option A
  4. Quick Check:

    Hash each uses key, value pairs [OK]
Hint: Hash each block gets two vars: key and value [OK]
Common Mistakes:
  • Swapping key and value variables
  • Using only one block variable for hash
  • Trying to capitalize a number
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard