所以我相信我理解這段代碼。在codewars中提示我在提供的數組中返回重複項。這是我經過一番搜索後想出來的。我很新的Ruby和想深入瞭解這段代碼,而不是僅僅用它來傳遞代碼的挑戰。解釋這對我說:arr.detect {| E | arr.rindex(E)!= arr.index(E)}
糾正我,如果我錯了,或添加任何東西,我失蹤...
- ARR是數組。
- .detect是一種通過枚舉傳遞enum中的每個條目的方法。然後它返回該塊不是假的第一個。
在這種情況下,使其通過:
{|e| arr.rindex(e) != arr.index(e)}
在該塊的處理是Ë表示在枚舉每個條目。
- .rindex(e)從最後搜索到第一Ë陣列中並返回參數()中描述的匹配陣列對象代碼的部分。
- 的.index(e)中返回第一個對象,它是真正在數組中。
因此,包裝這一切了,「.rindex」檢查從陣列的第一個真正的對象月底開始,而的.index不相同,但是從陣列開始,直到他們打.rindex和.index錯誤的編號。由於塊本身是真的(arr.rindex(e)是不等於arr.index(E)),檢測該返回是重複的對象。
arr.detect {|e| arr.rindex(e) != arr.index(e) }
這一切對我來說仍然是非常高的水平,對於我來說,這對某些人來說會更好一點。提前致謝!
是的,你完全擊敗了我:) –
大聲笑。謝謝克里斯,他的答案和解釋。目前總noob,立志不成。 –