To remove items from a set based on a condition in Ruby, you can use the delete_if
method which evaluates a block and deletes elements for which the block returns true.
In this example,
number_set
using the Set
class and initialize it with a collection of integers: number_set = Set.new([1, 2, 3, 4, 5])
.delete_if
method on the set and pass a block that checks if each number is even.delete_if
method removes that number from the set.require 'set'
number_set = Set.new([1, 2, 3, 4, 5])
puts "Original Set: #{number_set.to_a}"
number_set.delete_if { |num| num.even? }
puts "Set after removing even numbers: #{number_set.to_a}"
Original Set: [1, 2, 3, 4, 5] Set after removing even numbers: [1, 3, 5]
In this example,
string_set
using the Set
class and initialize it with a collection of strings: string_set = Set.new(["apple", "banana", "orange", "kiwi"])
.delete_if
method on the set and pass a block that checks if the length of each string is greater than 4.delete_if
method removes that string from the set.require 'set'
string_set = Set.new(["apple", "banana", "orange", "kiwi"])
puts "Original Set: #{string_set.to_a}"
string_set.delete_if { |str| str.length > 4 }
puts "Set after removing strings longer than 4 characters: #{string_set.to_a}"
Original Set: ["apple", "banana", "orange", "kiwi"] Set after removing strings longer than 4 characters: ["kiwi"]
In this tutorial, we learned How to Remove Items from Set based on a Condition in Ruby language with well detailed examples.