在上一篇文章中,我们介绍了从Array删除元素的两种不同方法。我们已经在它们的语法和支持示例的帮助下看到了它们的实现。快速回顾一下,让我告诉您这两个方法是Array。delete()和数组。delete_at()。数组。delete()是一个方法,它要求应该在数组的参数列表中传递的元素的名称。它的工作方式是删除Arraydelete()参数列表中提到的所有同名元素。而数组。delete_at()需要我们要从数组中删除的元素的索引。
在本文中,我们将学习另外两个重要的删除Array类实例中的元素的方法,即Array。comp()和数组。uniq()!。
现在,让我们在本文其余部分中找到的语法和示例的帮助下,完成它们的实现。
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中进行更改。
参数:
无需参数。
语法:
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。