2013-10-13 56 views
-3

假設我有三個數組arr1,arr1arr3Ruby找到像數組中的字符串數組

arr1 = ["apple", "book", "car", "dog"] 
arr2 = ["apple", "book"] 
arr3 = ["app", "boo"] 

我如何檢查是否arr1包括:arr2,並arr3與像通配符。

+0

你可以編輯你回答一些例子,提供一些示例輸入和你期望的輸出。 –

+0

我的意思是檢查arr2和arr3是否都在arr1中。 – hudadiaz

+1

@hudadiaz你真的想檢查'arr2'的所有*元素*是否包含在'arr1'中,或者是否所有的'arr3' *模式*都在'arr1'中。 – Stefan

回答

1

你可以使用Enumerable#grep

arr3.all? { |item| arr2.grep(/#{item}/)[0] } 
#=> true 

此相匹配的子串(例如ook),只有前綴使用/^#{item}/相匹配。

+0

爲什麼需要'[0]'? –

+0

'grep'返回一個數組。 – Stefan

+0

是的..我知道..我正在檢查你爲什麼檢查第一個元素? :)爲什麼不'數組#空?'? –