Bird
Raised Fist0
Rubyprogramming~30 mins

Array comparison and set operations in Ruby - Mini Project: Build & Apply

Choose your learning style10 modes available
Array comparison and set operations
📖 Scenario: You are managing two lists of attendees for two different events. You want to find out who attended both events, who attended only one, and who attended either event.
🎯 Goal: Build a Ruby program that compares two arrays of names using set operations to find common attendees, unique attendees, and all attendees combined.
📋 What You'll Learn
Create two arrays with exact names as given
Create a variable to hold the common attendees
Create a variable to hold attendees unique to the first event
Create a variable to hold all attendees from both events
Print the results exactly as specified
💡 Why This Matters
🌍 Real World
Comparing lists of participants, customers, or items is common in event planning, marketing, and inventory management.
💼 Career
Understanding array comparison and set operations helps in data analysis, filtering, and reporting tasks in many programming jobs.
Progress0 / 4 steps
1
Create two arrays of attendees
Create an array called event1_attendees with these exact names: "Alice", "Bob", "Charlie". Also create an array called event2_attendees with these exact names: "Bob", "Diana", "Edward".
Ruby
Hint

Use square brackets [] to create arrays and separate names with commas.

2
Create variables for set operations
Create a variable called common_attendees that holds the names present in both event1_attendees and event2_attendees. Create a variable called unique_to_event1 that holds names in event1_attendees but not in event2_attendees. Create a variable called all_attendees that holds all unique names from both arrays combined.
Ruby
Hint

Use & for intersection, - for difference, and | for union of arrays.

3
Prepare output strings
Create a variable called common_str that joins the names in common_attendees with commas. Create a variable called unique_str that joins the names in unique_to_event1 with commas. Create a variable called all_str that joins the names in all_attendees with commas.
Ruby
Hint

Use the join method with ", " to combine array elements into a string.

4
Print the results
Print the following lines exactly using puts:
1. "Common attendees: " followed by common_str
2. "Unique to event 1: " followed by unique_str
3. "All attendees: " followed by all_str
Ruby
Hint

Use puts and string interpolation with #{} to print variables inside strings.

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