我有这段代码:
tickets = Array.new(10) {rand(99999)+1}
list = []
(list << '%05i' % (rand(99999)+1)).uniq! while list.length < 5
number1, number2, number3, number4, number5 = list
如何查看ticket
是否有中奖号码?有五个中奖号码,因为每个号码都有不同的奖品。
答案 0 :(得分:4)
Ruby的数组包括&
:
Set Intersection - 返回一个新数组,其中包含两个数组共有的元素,不包括任何重复项。订单将从原始数组中保留。
它使用hash和eql来比较元素?提高效率的方法。
ary1 = [1,2,3]
ary2 = [2,4,6]
ary1 & ary2 # => [2]
这适用于任何类型的对象:
ary1 = %w[a b c]
ary2 = %w[c d e]
ary1 & ary2 # => ["c"]
所以,如果你有一张门票清单和一张中奖票:
tickets = [1,2,3]
winning_ticket = [2]
tickets & winning_ticket # => [2]
答案 1 :(得分:1)
可能如下所示:
[number1, number2, number3, number4, number5].find{|e| tickets.include? e }