Bird
Raised Fist0
Rubyprogramming~5 mins

Array creation methods in Ruby - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
How do you create an empty array in Ruby?
You create an empty array by using square brackets with nothing inside: [].
Click to reveal answer
beginner
What does Array.new(3) do in Ruby?
It creates a new array with 3 elements, all set to nil by default: [nil, nil, nil].
Click to reveal answer
beginner
How can you create an array with 5 zeros using Array.new?
Use Array.new(5, 0). This creates an array with 5 elements, each set to 0: [0, 0, 0, 0, 0].
Click to reveal answer
intermediate
What is the difference between Array.new(3, []) and Array.new(3) { [] }?
The first creates an array with 3 references to the same empty array (shared object). The second creates 3 separate empty arrays (different objects).
Click to reveal answer
beginner
How do you create an array from a range in Ruby?
Use the to_a method on a range. For example, (1..5).to_a creates [1, 2, 3, 4, 5].
Click to reveal answer
What does Array.new(4) return?
AAn error
B[0, 0, 0, 0]
C[nil, nil, nil, nil]
D[[], [], [], []]
How do you create an array of 3 empty arrays, each a separate object?
AArray.new(3, [])
BArray.new(3) { [] }
C[[], [], []]
DBoth B and C
What does (5..8).to_a produce?
A[5, 6, 7, 8]
B[5, 6, 7]
C[6, 7, 8]
DAn error
What is the result of Array.new(3, 'a')?
A['a', 'b', 'c']
B['a', 'a', 'a']
C[nil, nil, nil]
DAn error
Which method creates an empty array?
AAll of the above
BArray.new(0)
CArray.new
D[]
Explain three different ways to create arrays in Ruby and when you might use each.
Think about empty arrays, arrays with repeated values, and arrays with unique objects.
You got /5 concepts.
    Describe the difference between Array.new(3, []) and Array.new(3) { [] } in Ruby.
    Consider what happens if you change one element inside the arrays.
    You got /4 concepts.

      Practice

      (1/5)
      1. Which of the following is a correct way to create an empty array in Ruby?
      easy
      A. array()
      B. []
      C. {}
      D. new Array()

      Solution

      1. Step 1: Understand Ruby array syntax

        In Ruby, arrays are created using square brackets [] for literals.
      2. Step 2: Identify correct empty array syntax

        [] creates an empty array, while {} creates an empty hash, and the other options are not Ruby syntax.
      3. Final Answer:

        [] -> Option B
      4. Quick Check:

        Empty array = [] [OK]
      Hint: Empty arrays use square brackets [] in Ruby [OK]
      Common Mistakes:
      • Using curly braces {} which creates a hash
      • Using parentheses like array() which is invalid
      • Using JavaScript-like syntax new Array()
      2. Which of the following is the correct syntax to create an array with 3 elements, all initialized to zero?
      easy
      A. Array.new(3, 0)
      B. Array.new(0, 3)
      C. Array(0, 3)
      D. new Array(3, 0)

      Solution

      1. Step 1: Recall Array.new syntax

        In Ruby, Array.new(size, default_value) creates an array with given size and fills it with the default value.
      2. Step 2: Check each option

        Array.new(3, 0) correctly creates [0, 0, 0]. Array.new(0, 3) creates an empty array since size is first argument. Options C and D are invalid syntax.
      3. Final Answer:

        Array.new(3, 0) -> Option A
      4. Quick Check:

        Array.new(3, 0) = [0, 0, 0] [OK]
      Hint: Use Array.new(size, value) to create arrays with default values [OK]
      Common Mistakes:
      • Confusing Array.new arguments order
      • Using invalid syntax like Array(0, 3)
      • Trying JavaScript style new Array()
      3. What is the output of the following Ruby code?
      arr = Array.new(4) { |i| i * 2 }
      puts arr.inspect
      medium
      A. [nil, nil, nil, nil]
      B. [2, 4, 6, 8]
      C. [0, 2, 4, 6]
      D. [0, 0, 0, 0]

      Solution

      1. Step 1: Understand Array.new with block

        When Array.new is called with a block, it runs the block for each index, passing the index as i.
      2. Step 2: Calculate each element

        For indices 0 to 3, the block returns i * 2: 0*2=0, 1*2=2, 2*2=4, 3*2=6.
      3. Final Answer:

        [0, 2, 4, 6] -> Option C
      4. Quick Check:

        Array with block fills elements by index * 2 [OK]
      Hint: Array.new with block uses index to set each element [OK]
      Common Mistakes:
      • Assuming default value 0 for all elements
      • Confusing block argument meaning
      • Expecting nil values without block
      4. The following code is intended to create an array of 3 separate empty arrays. What is the problem?
      arr = Array.new(3, [])
      arr[0] << 1
      puts arr.inspect
      medium
      A. [[1], [1], [1]]
      B. [[1], [], []]
      C. [[], [], []]
      D. SyntaxError

      Solution

      1. Step 1: Understand Array.new with default object

        Using Array.new(3, []) creates 3 references to the same empty array, not 3 separate arrays.
      2. Step 2: Analyze mutation effect

        When arr[0] << 1 runs, it adds 1 to the shared array, so all elements show the change.
      3. Final Answer:

        [[1], [1], [1]] -> Option A
      4. Quick Check:

        Same object repeated causes all elements to change [OK]
      Hint: Use block with Array.new for separate objects [OK]
      Common Mistakes:
      • Expecting separate arrays but all share one object
      • Not using block form for unique elements
      • Assuming << affects only one element
      5. How can you create an array of 5 hashes, each with keys :a and :b initialized to 0, ensuring each hash is a separate object?
      hard
      A. Array(5) { {a: 0, b: 0} }
      B. Array.new(5, {a: 0, b: 0})
      C. [{a: 0, b: 0}] * 5
      D. Array.new(5) { {a: 0, b: 0} }

      Solution

      1. Step 1: Understand object references in Array.new

        Using Array.new(5, {a: 0, b: 0}) or [{a: 0, b: 0}] * 5 repeats the same hash object 5 times.
      2. Step 2: Use block form for unique hashes

        Using Array.new(5) { {a: 0, b: 0} } runs the block 5 times, creating 5 separate hashes.
      3. Final Answer:

        Array.new(5) { {a: 0, b: 0} } -> Option D
      4. Quick Check:

        Block form creates unique objects [OK]
      Hint: Use block with Array.new for unique hashes [OK]
      Common Mistakes:
      • Using Array.new with default hash causes shared references
      • Using multiplication operator with arrays of hashes
      • Trying invalid Array() constructor syntax
      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