檢查個別匹配元素我有這兩個數組在兩個不同的陣列
arr1 = ["dog", "cat", "bird"]
arr2 = ["fish", "bear", "bird"]
通知的唯一匹配元件是如何「鳥」來自兩個陣列。我想查找一個檢查,如果有任何元素匹配,則返回true。
例如,這不起作用arr1.include?(arr2)
但尋找會的方法。
檢查個別匹配元素我有這兩個數組在兩個不同的陣列
arr1 = ["dog", "cat", "bird"]
arr2 = ["fish", "bear", "bird"]
通知的唯一匹配元件是如何「鳥」來自兩個陣列。我想查找一個檢查,如果有任何元素匹配,則返回true。
例如,這不起作用arr1.include?(arr2)
但尋找會的方法。
我找到了一個好辦法做到這一點:
(arr1 & arr2).any?
&
是一個邏輯運算符,如果兩個陣列中存在的一些元素,這將返回這些元素。
any?
檢查數組中是否存在任何元素。如果至少存在一個,則返回true
。
arr1.any? { |item| arr2.include?(item) }
這將檢查第一個數組中是否包含任何第二個數組中的項目。
你可以用兩個數組之間的交集來做到這一點,然後我們可以檢查結果中是否有匹配的元素。
(arr1 & arr2).present?
在你的情況,我們有
arr1 = ["dog", "cat", "bird"]
arr2 = ["fish", "bear", "bird"]
結果可能是這樣的:
(arr1 & arr2).present?
它將返回['bird']
,所以它不是空的,本?將返回true。
哪個版本的Ruby有'Array'類中包含的'present?'方法? –
沒有方法錯誤,因爲'present?'不包含在Array類中 –
我們在rails中有它。我們可以做[1,2]。現在?這將返回true。 –
'&'和'any?'做什麼? –
'&'是邏輯運算符,如果兩個數組中存在某個元素,則返回它。 'any?'檢查數組中存在的元素,如果至少有一個,則返回true –
Thanks @BartekGladys。我的意思是,這個信息應該包含在你整潔的解決方案中,以使它更完整:) –