检查数组中是否存在两个或更多值

时间:2016-09-14 09:27:25

标签: ruby

我在Ruby中得到了这个回应:

 puts templateid --> ["10001", "10404"]

第一个应该是#{mstmplid},第二个应该是#{ostmplid}。我想用以下函数检查这个数组是否包含这两个值:

if templateid.all? { |x| ["#{mstmplid}", "#{ostmplid}"].include?(x) }
  puts "OK"
end

不幸的是templateid.all?与templateid.any相同?所以它将检查数组中是否有任何指定的值。如何检查两个值是否存在?

1 个答案:

答案 0 :(得分:3)

如果这两个数组总是只有2个元素,你可以通过以下方式检查:

templateid.sort == [mstmplid, ostmplid].map(&:to_s).sort

如果您只是想检查mstmplid, ostmplid中是否包含templateid,您应该这样写:

[mstmplid, ostmplid].map(&:to_s).all? { |x| templateid.include? x }