我有一组数组[[1,2,3],[4,5,6],[7,8,9]]
。我还有一个整数数组[3,4,5,6,8]
。
我是否可以检查我的整数是否与数组数组中的完整数组匹配?
所以我在int数组中有4,5,6
,它匹配中间数组[4,5,6]
。
答案 0 :(得分:2)
这应该有效
a = [[1,2,3],[4,5,6],[7,8,9]]
integers = [3,4,5,6,8]
a.any? { |sub_array| sub_array.all? { |item| integers.include? item } }
答案 1 :(得分:1)
试试这个:
array_1 = [[1,2,3],[4,5,6],[7,8,9]]
array_2 = [3,4,5,6,8]
array_1.any? { |e| (e - array_2).empty? }
# => true
答案 2 :(得分:0)
array1 = [[1,2,3],[4,5,6],[7,8,9]]
array2 = [4,5,6]
result = array1.map{|inner_array| inner_array - array2}
# => [[1, 2, 3], [], [7, 8, 9]]
result.any?{|inner_array| inner_array.empty?}
# => true
答案 3 :(得分:0)
假设您期望true
或false
并且订单无关紧要,则以下情况有效:
require 'set'
a1 = [[1,2,3],[4,5,6],[7,8,9]]
a2 = [3,4,5,6,8]
a1.any? { |item| item.to_set.subset? a2.to_set } #=> true
假设您希望index
进入a1
或nil
a1.index { |item| item.to_set.subset? a2.to_set }
假设您想要子集本身或nil
index = a1.index { |item| item.to_set.subset? a2.to_set }
index && a1[index]