使用可枚举的内置 Ruby 访问和操作嵌套数据
using an enumerable built-in Ruby to access and manipulate nested data
是否有一个内置程序可以让您轻松访问数组及其子数组中的对象,从而可以实现以下目标:
array = [5, 10, [15, 20], 25, [30, 35, 40]
array#method { #block that adds 5} => [10, 15, [20, 25], 30, [35, 40, 45]
我不关心它是否具有破坏性。
您可以使用递归 lambda:
add_five = lambda { |e| e.is_a?(Enumerable) ? e.map(&add_five) : e + 5 }
new_array = array.map(&add_five)
调整 e.is_a?(Enumerable)
测试以符合您的情况,e.is_a?(Array)
会更严格,但可能没有必要。
是否有一个内置程序可以让您轻松访问数组及其子数组中的对象,从而可以实现以下目标:
array = [5, 10, [15, 20], 25, [30, 35, 40]
array#method { #block that adds 5} => [10, 15, [20, 25], 30, [35, 40, 45]
我不关心它是否具有破坏性。
您可以使用递归 lambda:
add_five = lambda { |e| e.is_a?(Enumerable) ? e.map(&add_five) : e + 5 }
new_array = array.map(&add_five)
调整 e.is_a?(Enumerable)
测试以符合您的情况,e.is_a?(Array)
会更严格,但可能没有必要。