配列に格納されているインデックスを使用して、ネストされた配列に動的にアクセスする方法はありますか?
メインの配列/行列のネストは、2、4、100 などの変数にすることができます。
例:
my_array = [
[[1, 2], [3, 4]],
[[5, 6], [7, 8]],
[[9, 10], [11, 12]]
]
my_array.access_using_array([0, 1, 1])
=> 4
配列に格納されているインデックスを使用して、ネストされた配列に動的にアクセスする方法はありますか?
メインの配列/行列のネストは、2、4、100 などの変数にすることができます。
例:
my_array = [
[[1, 2], [3, 4]],
[[5, 6], [7, 8]],
[[9, 10], [11, 12]]
]
my_array.access_using_array([0, 1, 1])
=> 4
[0, 1, 1].inject(my_array, :fetch)
# => 4
Ruby 2.3.0 では、両方で呼び出される新しいメソッドがdig
導入され、この問題が解決されました。Hash
Array
nil
ネストの任意のレベルで要素が欠落している場合に返されます。
my_array.dig(0,1,1)