2012-10-04 40 views
17

Tôi đã điều sau đây:Làm thế nào để nhóm các yếu tố giống hệt nhau trong mảng của Ruby

Array = ["John", "Mike", "Bob", "Mike", "Bob"] 

tôi muốn có được đầu ra:

[["Mike", "Mike"], ["Bob", "Bob"], ["John"]] 
+3

Chào mừng bạn đến với StackOverflow! Để nhận được phản hồi tích cực ở đây, tốt nhất là nên thể hiện những gì bạn đã thử. Bạn có thể chỉnh sửa câu hỏi của mình để hiển thị câu hỏi này. –

Trả lời

32

Tôi khá chắc chắn rằng bạn sẽ có vấn đề bằng cách sử dụng tên hiện Array nhưng đây là cách.

Array.group_by{|x| x}.values 
+1

có cách nào để thực hiện điều này với viết tắt của proc không? –

+1

@ maxpleaner bạn có thể thực hiện 'tên = [" John "," Mike "," Bob "," Mike "," Bob "]; names.group_by (&: chính nó) .values' –

Các vấn đề liên quan