Closed. This question needs details or clarity. It is not currently accepting answers. Learn more。
想改进这个问题吗添加细节并通过editing this post澄清问题。
四年前关闭。
解决这个问题的常用方法是使用flatten
方法。
这可以通过其他方式实现吗,比如不使用flatten
?
def flatten_array(arr)
return arr.flatten
end
print flatten_array([1,2,3,4,[1,2,3,4],5])
最佳答案
class Array
def flattify
each_with_object([]) do |element, flattened|
flattened.push *(element.is_a?(Array) ? element.flattify : element)
end
end
end
[1,2,3,4,[1,2,3,4],5].flattify # => [1, 2, 3, 4, 1, 2, 3, 4, 5]
非猴子补丁版本:
def flattify(array)
array.each_with_object([]) do |element, flattened|
flattened.push *(element.is_a?(Array) ? flattify(element) : element)
end
end
flattify([1,2,3,4,[1,2,3,4],5]) # => [1, 2, 3, 4, 1, 2, 3, 4, 5]
关于ruby - 在不使用内置“flatten”方法的情况下将Ruby数组展平,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31940239/
10-14 19:25