Tôi có hai mảng như thế này:Chuyển đổi một loạt các phím và một loạt các giá trị vào một hash trong Ruby
keys = ['a', 'b', 'c']
values = [1, 2, 3]
Có một cách đơn giản trong Ruby để chuyển đổi những mảng vào băm sau đây?
{ 'a' => 1, 'b' => 2, 'c' => 3 }
Đây là cách tôi làm, nhưng tôi cảm thấy cần có phương pháp tích hợp để dễ dàng thực hiện việc này.
def arrays2hash(keys, values)
hash = {}
0.upto(keys.length - 1) do |i|
hash[keys[i]] = values[i]
end
hash
end
Vậy Hash [keys.zip (values)] sau đó? –
Cảm ơn, phương pháp zip có lẽ là những gì tôi cần ... nhưng phần "Hash [zipped]" cho tôi một lỗi trong Ruby 1.8.6: "ArgumentError: số lẻ đối số cho Hash". Và tôi không thể tìm ra một cách khác đơn giản để thay đổi 'nén' thành băm ... –
Hmm. Tôi đang sử dụng 1.8.7. Có vẻ như điều này có thể đã được giới thiệu trong 1.8.7. Tôi sẽ chỉnh sửa câu trả lời cho một phiên bản tương thích ngược. –