在Ruby中使用Array.compact和Array.uniq方法从Array中移除元素

Ruby Array.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.uniqArray.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。