루비에서 모든 값을 제거하려면 어떻게합니까? 나는 단지 가치를 제거하고 싶지 않다. 예를 들어중첩 된 루비 해시의 모든 값 지우기
: 나는 중첩 된 해시를 삭제하지 않으 {'a'=>{'b'=>nil},'d'=>nil,'f'=>{'g'=>nil}}
:
{'a'=>{'b'=>'c'},'d'=>'e','f'=>{'g'=>''}}
내가이 원하는 : 여기
class Hash
def delete_values!
each_key do |key|
self[key].is_a?(Hash) ? self[key].delete_values! : self[key] = nil
end
end
end
{'a'=>{'b'=>'c'},'d'=>'e','f'=>{'g'=>''}}.delete_values!
# => {"a"=>{"b"=>nil}, "d"=>nil, "f"=>{"g"=>nil}}
재귀가 유일한 방법이라고 생각합니다. – Candide