Tôi hiện đang thử một số giờ để xóa khóa băm lồng nhau của danh sách băm. Tôi thấy nhiều giải pháp phi lồng nhau hashs Mà trông như thế này:Làm thế nào để loại bỏ các khóa lồng nhau khỏi danh sách băm trong Rails
sample_hash = {"key1" => "value1", "key2" => "value2"}
sample_hash.except("key1")
Điều này dẫn đến:
{"key2"=>"value2"}
Nhưng nếu tôi cố gắng sử dụng ngoại trừ phương pháp trên một băm với chìa khóa lồng nhau sau đó nó doesn 't làm việc. Ở đây mã của tôi:
nested_hash = {"key1"=>"value1", "key2"=>{
"nested_key1"=>"nestedvalue1",
"nested_key2"=>"nestedvalue2"
}
}
nested_hash.except("nested_key2")
except() phương thức trả về các nested_hash mà không cần bất kỳ thay đổi. Tôi đã tìm một giải pháp làm thế nào tôi có thể vượt qua lồng nhau băm phím để phương pháp ngoại trừ, nhưng không thể tìm thấy bất cứ điều gì. Thậm chí có thể truyền các khóa lồng vào phương thức này hay tôi nên sử dụng một số phương thức khác để xóa khóa băm lồng nhau khỏi danh sách băm của tôi?
Có thể bạn muốn có cây thật chứ không phải là băm lồng nhau. Bạn có thể xem https://github.com/evolve75/RubyTree, https://github.com/stefankroes/ancestry hoặc https://github.com/mceachen/closure_tree để biết các đá quý có thể phù hợp với bạn. –