我想删除Array对象中的重复项.最好用一个例子来解释.
我有以下内容 Array
entries = ["a b c", "a b", "c", "c d"]
Run Code Online (Sandbox Code Playgroud)
我想要一个方法,通过从元素中删除重复的项目来清理它,Array并返回Array一个元素,每个唯一的项目都有一个元素.
所以这是我写的方法来做到这一点:
class Array
def clean_up()
self.join(" ").split(" ").uniq
end
end
Run Code Online (Sandbox Code Playgroud)
所以现在当我打电话时,entries.clean_up我得到以下结果:
["a", "b", "c", "d"]
Run Code Online (Sandbox Code Playgroud)
这正是我想要的结果,但在Ruby中有更优雅的方法吗?
我在Ruby中有Array一些String对象,它们由下面的单词组成:
animals = ["cat horse", "dog", "cat dog bird", "dog sheep", "chicken cow"]
我想将其转换为另一种Array的String对象,但每个元素中只有一个动物,只有独特的元素.我找到了一种方法,如下所示:
class Array
def process()
self.join(" ").split().uniq
end
end
Run Code Online (Sandbox Code Playgroud)
但是,如果输入数组是巨大的,让我们说数百万个条目,那么这将是非常糟糕的,因为我将创建一个巨大的字符串,然后是一个巨大的数组,然后uniq必须处理该巨大的数组以删除重复的元素.我考虑加快速度的一种方法是Hash为每个单词创建一个条目,这样我只会在第一遍中处理每个单词一次.有没有更好的办法?
我需要将一个数组数组添加到一个没有重复的数组中
array = [[1,2,3],[2,3,4],[7,8,9]]
Run Code Online (Sandbox Code Playgroud)
至
new_array [1,2,3,4,7,8,9]
Run Code Online (Sandbox Code Playgroud)
在Ruby中使用IT的最佳方法是什么?
寻找一种方法来将嵌套的数组列表减少为一个唯一的项目数组,并删除任何空数组.
希望减少这个数组:
[[2700, 177, 2092, 176, 188], [123, 1234], []]
Run Code Online (Sandbox Code Playgroud)
下到这个新阵列:
[2700, 177, 2092, 176, 188, 123, 1234]
Run Code Online (Sandbox Code Playgroud)
已经尝试过array.uniq.compact,但没有奏效.
谢谢你的任何建议.