可以使用递归和循环来实现。下面是一个示例代码:
def convert_to_two_dimensional_array(hash)
result = []
hash.each do |key, value|
if value.is_a?(Hash)
sub_array = convert_to_two_dimensional_array(value)
sub_array.each do |sub_value|
result << [key] + sub_value
end
else
result << [key, value]
end
end
result
end
这个方法convert_to_two_dimensional_array
接受一个嵌套哈希作为参数,并返回一个二维数组。算法使用了递归来处理嵌套的哈希,如果某个值是哈希,就将其转换为一个二维数组,然后将键值对与子数组合并,最后将结果添加到最终的结果数组中。
以下是该方法的一个示例用法:
nested_hash = {
'a' => {
'b' => 1,
'c' => 2
},
'd' => {
'e' => 3,
'f' => {
'g' => 4
}
}
}
result = convert_to_two_dimensional_array(nested_hash)
puts result.inspect
输出结果将是:
[["a", "b", 1], ["a", "c", 2], ["d", "e", 3], ["d", "f", "g", 4]]
这样,我们就将嵌套的哈希成功转换为了二维数组。
腾讯云相关产品和产品介绍链接地址:
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云