Skip to content

Instantly share code, notes, and snippets.

@sesharim
Created October 2, 2014 13:20
Show Gist options
  • Save sesharim/d0ed05a561760b63a18d to your computer and use it in GitHub Desktop.
Save sesharim/d0ed05a561760b63a18d to your computer and use it in GitHub Desktop.
Nested keys
recursive_array = lambda do |array, result|
array.each do |item|
result << item[:name] if item[:name]
recursive_array.call(item[:children], result) if item[:children]
end
result
end
a = [
{name: "Folder 1",
children: [
{name: "File 1"},
{name: "File 2"},
{name: "File 3"},
{name: "Folder 1",
children: [
{name: "File in folder 1-1"},
{name: "File in folder 1-2"},
{name: "Folder 2",
children: [
{name: "File in folder 2-1"},
{name: "File in folder 2-2"}
]
}
]
}
]
}
]
puts recursive_array.call(a, [])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment