本文介绍了从循环中删除重复项的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下代码.

for i in 0..sold.length-1
    duplicate = sold[i]
    print duplicate.check_duplicates
    print "     "
    print sold[i].lotnumber + "\t"

    print sold[i].serialnumber

end

这将打印

 1     29371    43
 1     13797    6
 1     08114    55
 1     70657    106
 1     32741    74
 2     07272    103
 2     07272    103
 1     37416    14
 1     05153    177
 1     54338    115
 3     74522    171
 3     74522    171
 3     74522    171

我怎样才能删除重复项(3 74522 171 和 2 07272 103),这样每个都只有 1 个?

How can i remove the duplicates (3 74522 171 and 2 07272 103) so there is only 1 of each?

推荐答案

group_by 方法可以用作计数设备;这不使用 check_duplicates 方法.

The hash resulting from the group_by method can be used as a counting device; this does not use the check_duplicates method.

grouped = sold.group_by{|item| [item.lotnumber, item.serialnumber]}
grouped.each{|key, value| puts "#{value.size}   #{key.first}\t#{key.last}"}

这篇关于从循环中删除重复项的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-11 19:19