使用Ruby对数组中的唯一值进行排序
有没有一种方法可以在Ruby中编写一个使用Ruby对数组中的唯一值进行排序,ruby,Ruby,有没有一种方法可以在Ruby中编写一个方法,它接受一个项目数组,并返回一个没有任何重复项的数组。不使用Ruby的uniq方法 因此,这个数组的输出[1,5,“青蛙”,2,1,3,“青蛙”]将是[1,5,“青蛙”,2,3]我的数组=[1,5,“青蛙”,2,1,3,“青蛙”] my_array = [1, 5, "frog", 2, 1, 3, "frog"] uniques = [] my_array.each do |x| uniques << x unless uni
方法
,它接受一个项目数组,并返回一个没有任何重复项的数组。不使用Ruby的uniq
方法
因此,这个数组的输出[1,5,“青蛙”,2,1,3,“青蛙”]
将是[1,5,“青蛙”,2,3]
我的数组=[1,5,“青蛙”,2,1,3,“青蛙”]
my_array = [1, 5, "frog", 2, 1, 3, "frog"]
uniques = []
my_array.each do |x|
uniques << x unless uniques.include?(x)
end
uniques=[]
我的|数组。每个都有| x|
uniques由于使用括号而不是大括号来表示块,因此您得到了一个意外的输入结束。尝试:
my_array.to_a.select{ |i| i != i }
但即使这样也不是你所期望的。这里有一个替代方案:
my_array.group_by{|item| item}.keys
希望帮助选择
块应该使用{…}
开始-请发布至少编译成功的代码表示:i!=i
始终返回false
。您没有进行任何排序。并且到a
是多余的。@m-alow我已回滚您的编辑,因为错误的括号导致了“输入意外结束”错误。您错过了排序部分。似乎他正在尝试实现它这是我与您的代码引用的最后一个代码,它工作得非常完美:def uniques(my|u数组)my|u数组。按{item{item}分组。键结束放置uniques([1,5,“frog”,2,1,3,“frog”)
嘿,伙计,很高兴收到您的回复。听说我能帮助你,我很高兴。祝你今后一切顺利!小心,想知道是什么导致了它-对这个问题投5票你错过了排序部分。这个结果与数组#uniq
有何不同?除此之外,考虑使用<代码>数组γ注入/<代码>,而不是PHPISH附加到预先存在的ARARY.BTW,可以使用<代码>,除非而不是<代码>!代码>