Được rồi, đây là thỏa thuận, tôi đã googling từ lâu để tìm giải pháp cho vấn đề này và trong khi có rất nhiều ngoài kia, họ dường như không làm công việc mà tôi đang tìm kiếm.
Về cơ bản tôi có một mảng có cấu trúc như thế này
["item 1", "item 2", "item 3", "item 4"]
Tôi muốn chuyển đổi nó thành Hash để nó trông như thế này
{ "item 1" => "item 2", "item 3" => "item 4" }
tức là các mục trong chỉ mục 'chẵn' là các khóa và các mục trên chỉ mục 'lẻ' là các giá trị.
Bất kỳ ý tưởng làm thế nào để làm điều này sạch sẽ? Tôi cho rằng một phương pháp vũ phu sẽ chỉ là kéo tất cả các chỉ mục chẵn vào một mảng riêng biệt và sau đó lặp xung quanh chúng để thêm các giá trị.
*
được gọi là toán tử splat . Nó lấy một mảng và chuyển đổi nó thành một danh sách các mục. Vậy*[1,2,3,4]
=>1, 2, 3, 4
. Trong ví dụ này, ở trên là tương đương với làmHash["item 1", "item 2", "item 3", "item 4"]
. VàHash
có một[]
phương thức chấp nhận một danh sách các đối số (tạo các khóa chỉ mục chẵn và các giá trị chỉ mục lẻ), nhưngHash[]
không chấp nhận một mảng, vì vậy chúng tôi chia mảng bằng cách sử dụng*
.