給定一個嵌套的數組或哈希作爲接收者和一些對象作爲參數,如果接收者包含該對象,那麼返回該對象的出現路徑的最佳方式是什麼?我將路徑定義爲導向該對象的數組索引或散列鍵。參數對象永遠不會是任何散列鍵,並且永遠不會出現多次。例如,我想到:嵌入對象的路徑
[
:a,
[:b, :c, {:d => :foo}],
:e,
]
.path_to(:foo) # => [1, 2, :d]
{
:a => [3, "foo"],
:b => 5,
:c => 2,
}
.path_to(3) # => [:a, 0]
當沒有發生,返回nil
:
[:foo, "hello", 3]
.path_to(:bar) => nil
如果沒有一個有一個合理的答案來了,那麼我將不久後我自己的答案。
@ toro2k我還沒寫得太多。 – sawa
返回值*必須是數組?例如不會':c'就夠了嗎?它必須是'[:c]'? – Agis
@sawa很好的問題..我有困惑。在第二個例子中它會是'[:a,0]'還是'[:a,1]? –