在Ruby中使用Array.compact和Array.uniq方法从Array中移除元素
RubyArray.compact和Array.uniq方法
在上一篇文章中,我们介绍了从Array删除元素的两种不同方法。我们已经在它们的语法和支持示例的帮助下看到了它们的实现。快速回顾一下,让我告诉您这两个方法是Array。delete()和数组。delete_at()。数组。delete()是一个方法,它要求应该在数组的参数列表中传递的元素的名称。它的工作方式是删除Arraydelete()参数列表中提到的所有同名元素。而数组。delete_at()需要我们要从数组中删除的元素的索引。
在本文中,我们将学习另外两个重要的删除Array类实例中的元素的方法,即Array。comp()和数组。uniq()!。
现在,让我们在本文其余部分中找到的语法和示例的帮助下,完成它们的实现。
1)Array.compact方法
Parameter(s):
此方法不需要任何参数。
语法:
Array.compact
#要么
Array.compact!方法说明:
在大多数情况下,您会发现数组中包含一些nil值,并且需要某种机制或代码行来删除数组中存在的这些nil值。Ruby通过为您提供一个名为Array.compact的方法来减少出于相同目的而编写代码的开销。此方法用于从Array类的对象中删除所有nil值。Array.compact!也用于在Array中进行更改。
示例
=begin
Ruby program to remove elements from Array
using Array.compact
=end
#数组声明
Adc = [nil,'Nhooo.com','Ruby','C++','C#','Java','Python','C++',nil,nil]
#Array.compact方法
puts "Array.compact!"
Adc.compact
#打印数组元素
puts "Array elements are:"
print Adc
puts ""
#Array.compact!方法
puts "Array.compact!"
Adc.compact!
#打印数组元素
puts "Array elements are:"
print Adc输出结果
Array.compact! Array elements are: [nil, "Nhooo.com", "Ruby", "C++", "C#", "Java", "Python", "C++", nil, nil] Array.compact! Array elements are: ["Nhooo.com", "Ruby", "C++", "C#", "Java", "Python", "C++"]
说明:
在上面的代码中,您可以观察到Array.compact可用于从Array中删除nil个元素,而Array.compact!也可以用于在同一Array中进行更改。
2)Array.uniq方法
参数:
无需参数。
语法:
Array.uniq
#要么
Array.uniq!方法说明:
Array.uniq或Array.uniq!可用于从数组中删除重复的元素。有时,您可能会发现数组中包含重复的条目,这可能会造成任何复杂性。Array.uniq是非破坏性的,而Array.uniq!是破坏性的,这意味着后者也会在同一Array中创建更改。
示例
=begin
Ruby program to remove elements from Array
using Array.uniq
=end
#数组声明
Adc = ['Ruby','Nhooo.com','Ruby','C++','C#','Java','Python','C++','Java']
#Array.uniq方法
puts "Array.uniq"
print Adc.uniq
puts ""
puts "Array elements are:"
print Adc
puts ""
#Array.uniq!方法
puts "Array.uniq!"
Adc.uniq!
puts "Array elements are:"
print Adc输出结果
Array.uniq ["Ruby", "Nhooo.com", "C++", "C#", "Java", "Python"] Array elements are: ["Ruby", "Nhooo.com", "Ruby", "C++", "C#", "Java", "Python", "C++", "Java"] Array.uniq! Array elements are: ["Ruby", "Nhooo.com", "C++", "C#", "Java", "Python"]
说明:
在上面的代码中,您可以看到Array.uniq并没有在Array中创建任何更改,但是可以借助Array.uniq!方法。如果要避免重复,可以选择Sets。