Bird
Raised Fist0
Rubyprogramming~10 mins

Array comparison and set operations in Ruby - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Array comparison and set operations
Start with two arrays
↓
Compare arrays for equality
↓
Perform set operations
↓
Union
↓
Result output
Start with two arrays, compare them, then perform union, intersection, and difference operations to get new arrays.
Execution Sample
Ruby
a = [1, 2, 3, 4]
b = [3, 4, 5, 6]

puts a == b
puts (a | b).inspect
puts (a & b).inspect
puts (a - b).inspect
This code compares two arrays for equality and shows their union, intersection, and difference.
Execution Table
StepActionExpressionResultExplanation
1Compare arrays a and ba == bfalseArrays differ in elements, so equality is false
2Union of a and ba | b[1, 2, 3, 4, 5, 6]Combines unique elements from both arrays
3Intersection of a and ba & b[3, 4]Elements common to both arrays
4Difference of a and ba - b[1, 2]Elements in a not in b
5End--All operations completed
💡 All set operations performed and results displayed
Variable Tracker
VariableStartAfter Step 1After Step 2After Step 3After Step 4Final
a[1, 2, 3, 4][1, 2, 3, 4][1, 2, 3, 4][1, 2, 3, 4][1, 2, 3, 4][1, 2, 3, 4]
b[3, 4, 5, 6][3, 4, 5, 6][3, 4, 5, 6][3, 4, 5, 6][3, 4, 5, 6][3, 4, 5, 6]
a == bN/Afalsefalsefalsefalsefalse
a | bN/AN/A[1, 2, 3, 4, 5, 6][1, 2, 3, 4, 5, 6][1, 2, 3, 4, 5, 6][1, 2, 3, 4, 5, 6]
a & bN/AN/AN/A[3, 4][3, 4][3, 4]
a - bN/AN/AN/AN/A[1, 2][1, 2]
Key Moments - 3 Insights
Why does 'a == b' return false even though some elements are the same?
Because '==' checks if arrays have the same elements in the same order. Here, a and b differ in elements and order, so result is false (see step 1 in execution_table).
What does the '|' operator do with arrays?
It creates a union of unique elements from both arrays, removing duplicates (see step 2 in execution_table).
Why does 'a - b' only show elements from a not in b?
Because '-' subtracts elements of b from a, leaving only those unique to a (see step 4 in execution_table).
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the result of 'a & b' at step 3?
A[1, 2]
B[3, 4]
C[5, 6]
D[1, 2, 3, 4, 5, 6]
💡 Hint
Check the 'Result' column for step 3 in execution_table
At which step does the union of arrays a and b get computed?
AStep 1
BStep 3
CStep 2
DStep 4
💡 Hint
Look for the action 'Union of a and b' in execution_table
If array b was changed to [1, 2, 3, 4], what would 'a == b' return?
Atrue
Bfalse
Cnil
Derror
💡 Hint
Refer to variable_tracker and key_moments about array equality
Concept Snapshot
Array comparison and set operations in Ruby:
- Use '==' to check if arrays are equal (same elements, same order)
- Use '|' for union (unique elements from both arrays)
- Use '&' for intersection (common elements)
- Use '-' for difference (elements in first array not in second)
- Results are new arrays without modifying originals
Full Transcript
This visual execution trace shows how Ruby compares two arrays and performs set operations. First, it checks if arrays a and b are equal using '==', which returns false because their elements differ. Then it computes the union with '|', combining unique elements from both arrays. Next, it finds the intersection with '&', showing elements common to both. Finally, it calculates the difference with '-', showing elements in a not in b. Variables remain unchanged throughout. Key moments clarify why equality requires exact match and how set operators work. The quiz tests understanding of these steps.

Practice

(1/5)
1.

Which operator in Ruby returns the common elements between two arrays?

[1, 2, 3] ? [2, 3, 4]
easy
A. & (intersection)
B. | (union)
C. - (difference)
D. == (equality)

Solution

  1. Step 1: Understand the operators

    The & operator returns elements common to both arrays.
  2. Step 2: Apply to example arrays

    For arrays [1, 2, 3] and [2, 3, 4], common elements are 2 and 3.
  3. Final Answer:

    & (intersection) -> Option A
  4. Quick Check:

    Common elements = & [OK]
Hint: Use & for common items between arrays [OK]
Common Mistakes:
  • Confusing union (|) with intersection (&)
  • Using - for common elements
  • Thinking == compares elements regardless of order
2.

Which of the following is the correct syntax to find the difference between two arrays a and b in Ruby?

easy
A. a == b
B. a - b
C. a | b
D. a & b

Solution

  1. Step 1: Recall difference operator

    The - operator returns elements in a not in b.
  2. Step 2: Confirm syntax correctness

    Using a - b is the correct Ruby syntax for difference.
  3. Final Answer:

    a - b -> Option B
  4. Quick Check:

    Difference = - [OK]
Hint: Use a - b to get items in a but not in b [OK]
Common Mistakes:
  • Using & instead of - for difference
  • Using | which is union
  • Using == which checks equality
3.

What is the output of the following Ruby code?

a = [1, 2, 3, 4]
b = [3, 4, 5, 6]
result = a | b
puts result.inspect
medium
A. [1, 2, 3, 4, 5, 6]
B. [3, 4]
C. [1, 2]
D. [1, 2, 3, 4]

Solution

  1. Step 1: Understand the union operator

    The | operator combines all unique elements from both arrays.
  2. Step 2: Apply union to arrays

    Arrays a and b combined uniquely are [1, 2, 3, 4, 5, 6].
  3. Final Answer:

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

    Union = | [OK]
Hint: Use | to combine unique elements from both arrays [OK]
Common Mistakes:
  • Confusing union with intersection
  • Expecting duplicates in output
  • Using - which removes elements
4.

Identify the error in the following Ruby code snippet:

a = [1, 2, 3]
b = [2, 3, 4]
result = a & b
puts result

What is the problem?

medium
A. Syntax error due to missing parentheses
B. Outputs all elements from both arrays
C. Runtime error because & is not defined for arrays
D. No error; code runs and outputs common elements

Solution

  1. Step 1: Check syntax and operators

    The & operator is valid for arrays to find intersection.
  2. Step 2: Verify output behavior

    The code outputs common elements [2, 3] without error.
  3. Final Answer:

    No error; code runs and outputs common elements -> Option D
  4. Quick Check:

    Intersection & works fine [OK]
Hint: & works for arrays to find common items without syntax errors [OK]
Common Mistakes:
  • Thinking & causes syntax error
  • Expecting union instead of intersection
  • Confusing output with difference
5.

You have two arrays representing user IDs:

active_users = [101, 102, 103, 104, 105]
inactive_users = [103, 105, 107]

Which Ruby expression gives you the list of users who are active but not inactive?

hard
A. active_users | inactive_users
B. active_users & inactive_users
C. active_users - inactive_users
D. active_users == inactive_users

Solution

  1. Step 1: Understand the problem

    We want users in active_users but not in inactive_users.
  2. Step 2: Use difference operator

    The - operator returns elements in first array not in second.
  3. Step 3: Apply to given arrays

    active_users - inactive_users = [101, 102, 104]
  4. Final Answer:

    active_users - inactive_users -> Option C
  5. Quick Check:

    Difference = - [OK]
Hint: Use - to exclude inactive from active users [OK]
Common Mistakes:
  • Using & which gives only common users
  • Using | which combines all users
  • Using == which checks equality
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