相关疑难解决方法(0)

如何更优雅地删除Ruby Array中所有元素的重复项?

我想删除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 arrays

6
推荐指数
1
解决办法
301
查看次数

我可以更快地制作这个Ruby代码和/或使用更少的内存吗?

我在Ruby中有Array一些String对象,它们由下面的单词组成:

animals = ["cat horse", "dog", "cat dog bird", "dog sheep", "chicken cow"]

我想将其转换为另一种ArrayString对象,但每个元素中只有一个动物,只有独特的元素.我找到了一种方法,如下所示:

class Array
  def process()
    self.join(" ").split().uniq
  end
end
Run Code Online (Sandbox Code Playgroud)

但是,如果输入数组是巨大的,让我们说数百万个条目,那么这将是非常糟糕的,因为我将创建一个巨大的字符串,然后是一个巨大的数组,然后uniq必须处理该巨大的数组以删除重复的元素.我考虑加快速度的一种方法是Hash为每个单词创建一个条目,这样我只会在第一遍中处理每个单词一次.有没有更好的办法?

ruby arrays performance

4
推荐指数
1
解决办法
404
查看次数

添加具有主数组的所有数组,不重复

我需要将一个数组数组添加到一个没有重复的数组中

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的最佳方法是什么?

ruby multidimensional-array

1
推荐指数
1
解决办法
722
查看次数

Ruby新的独特嵌套数组项数组

寻找一种方法来将嵌套的数组列表减少为一个唯一的项目数组,并删除任何空数组.

希望减少这个数组:

[[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,但没有奏效.

谢谢你的任何建议.

ruby ruby-on-rails

1
推荐指数
1
解决办法
630
查看次数