Bird
Raised Fist0
Rubyprogramming~5 mins

Reject for inverse filtering in Ruby - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the reject method do in Ruby?
The reject method returns a new array excluding elements for which the given block returns true. It filters out unwanted elements.
Click to reveal answer
beginner
How is reject related to select in Ruby?
reject is the inverse of select. While select keeps elements where the block is true, reject removes them.
Click to reveal answer
beginner
Example: What is the result of [1, 2, 3, 4].reject { |n| n.even? }?
The result is [1, 3] because reject removes even numbers (2 and 4).
Click to reveal answer
intermediate
Can reject be used with hashes in Ruby?
Yes, reject works with hashes and returns a new hash excluding key-value pairs where the block returns true.
Click to reveal answer
intermediate
What happens if no block is given to reject?
If no block is given, reject returns an Enumerator, allowing chaining or delayed execution.
Click to reveal answer
What does reject do in Ruby?
AKeeps elements where the block returns true
BRemoves elements where the block returns true
CSorts elements in ascending order
DReturns the first element
What is the output of [5, 6, 7].reject { |n| n > 6 }?
A[5, 6]
B[7]
C[5, 7]
D[6, 7]
Which method is the inverse of reject?
Aeach
Bmap
Creduce
Dselect
What does reject return if no block is given?
Anil
BAn empty array
CAn Enumerator
DRaises an error
Can reject be used on a hash?
AYes, it returns a hash excluding pairs where block is true
BNo, it only works on arrays
CYes, but returns an array
DNo, it raises an error
Explain how the reject method works in Ruby and how it differs from select.
Think about what elements stay or go based on the block's result.
You got /3 concepts.
    Write a Ruby code example using reject to remove all odd numbers from an array.
    Use n.odd? inside the block.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does the Ruby method reject do when called on an array?
      easy
      A. It sorts the array in reverse order.
      B. It modifies the original array to keep only elements matching the condition.
      C. It returns the first element that matches the condition.
      D. It returns a new array excluding elements that match the given condition.

      Solution

      1. Step 1: Understand the purpose of reject

        The reject method filters elements by removing those that satisfy the condition.
      2. Step 2: Compare with other methods

        Unlike select, which keeps matching elements, reject excludes them and returns a new array.
      3. Final Answer:

        It returns a new array excluding elements that match the given condition. -> Option D
      4. Quick Check:

        reject excludes matching elements = A [OK]
      Hint: Reject removes items matching condition, returning a new array [OK]
      Common Mistakes:
      • Thinking reject modifies the original array
      • Confusing reject with select
      • Assuming reject returns a single element
      2. Which of the following is the correct syntax to use reject on an array nums to remove even numbers?
      easy
      A. nums.reject { |n| n % 2 == 0 }
      B. nums.reject(n % 2 == 0)
      C. nums.reject => n { n % 2 == 0 }
      D. nums.reject do n; n % 2 == 0 end

      Solution

      1. Step 1: Identify correct block syntax for reject

        The reject method requires a block with { |var| condition } or do |var| ... end.
      2. Step 2: Check each option's syntax

        nums.reject { |n| n % 2 == 0 } uses correct block syntax with braces and block variable. nums.reject(n % 2 == 0) misses block. nums.reject => n { n % 2 == 0 } uses invalid syntax. nums.reject do n; n % 2 == 0 end misses block variable in do syntax.
      3. Final Answer:

        nums.reject { |n| n % 2 == 0 } -> Option A
      4. Quick Check:

        Correct block syntax with |var| = D [OK]
      Hint: Use braces with |var| for reject blocks [OK]
      Common Mistakes:
      • Omitting block variable in block
      • Passing condition as method argument
      • Using incorrect block syntax
      3. What is the output of this Ruby code?
      arr = [1, 2, 3, 4, 5]
      result = arr.reject { |x| x > 3 }
      puts result.inspect
      medium
      A. [1, 2, 3]
      B. [4, 5]
      C. [1, 2, 3, 4, 5]
      D. []

      Solution

      1. Step 1: Understand the reject condition

        The block removes elements where x > 3 is true, so numbers 4 and 5 are removed.
      2. Step 2: Determine remaining elements

        Elements 1, 2, and 3 remain because they do not satisfy the condition.
      3. Final Answer:

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

        reject removes >3, so [1,2,3] remain = A [OK]
      Hint: Reject removes matching items, so keep others [OK]
      Common Mistakes:
      • Confusing reject with select
      • Expecting removed elements as output
      • Ignoring block condition logic
      4. The following code is intended to remove all nil values from the array data. What is the error?
      data = [1, nil, 2, nil, 3]
      clean = data.reject do |x|
        x = nil
      end
      puts clean.inspect
      medium
      A. The block variable is missing in the block.
      B. The reject method cannot remove nil values.
      C. The block uses assignment (=) instead of comparison (==).
      D. The code should use select instead of reject.

      Solution

      1. Step 1: Identify the block logic error

        The block uses x = nil which assigns nil to x instead of checking if x equals nil.
      2. Step 2: Correct the comparison operator

        It should use x == nil to test if x is nil for rejection.
      3. Final Answer:

        The block uses assignment (=) instead of comparison (==). -> Option C
      4. Quick Check:

        Use == for comparison inside reject blocks [OK]
      Hint: Use == for comparison inside reject blocks [OK]
      Common Mistakes:
      • Using = instead of == in block condition
      • Thinking reject modifies original array
      • Confusing reject with select
      5. Given a hash scores = { alice: 90, bob: 55, carol: 75, dave: 40 }, how can you use reject to create a new hash excluding all entries with scores below 60?
      hard
      A. scores.reject { |name| name < 60 }
      B. scores.reject { |name, score| score < 60 }
      C. scores.reject { |score| score < 60 }
      D. scores.reject { |name, score| name < 60 }

      Solution

      1. Step 1: Understand hash reject block parameters

        When rejecting from a hash, the block receives two parameters: key and value.
      2. Step 2: Apply condition on values

        We want to reject entries where the score (value) is less than 60, so the block should check score < 60.
      3. Step 3: Verify options

        scores.reject { |name, score| score < 60 } correctly uses both key and value parameters and checks the score. The other options either use only one block parameter or check the key instead of the value.
      4. Final Answer:

        scores.reject { |name, score| score < 60 } -> Option B
      5. Quick Check:

        Reject hash entries by value condition = B [OK]
      Hint: Use two block params for hash reject: |key, value| [OK]
      Common Mistakes:
      • Using only one block parameter for hash reject
      • Checking key instead of value
      • Confusing reject with select for filtering
      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