Tôi đang cố gắng lấy một tập con của các khóa cho mỗi băm trong một mảng.Làm cách nào tôi có thể lọc một mảng băm để chỉ lấy các khóa trong một mảng khác?
Các băm thực sự lớn hơn nhiều, nhưng tôi figured này là dễ hiểu:
[
{
id:2,
start: "3:30",
break: 30,
num_attendees: 14
},
{
id: 3,
start: "3: 40",
break: 40,
num_attendees: 4
},
{
id: 4,
start: "4: 40",
break: 10,
num_attendees: 40
}
]
Tôi muốn có được chỉ các giá trị id
và start
.
Tôi đã thử:
return_keys = ['id','start']
return_array = events.select{|key,val| key.to_s.in? return_keys}
nhưng điều này trả về một mảng trống.
Đối với N phím trong 'events' và phím M trong mỗi băm, và các phím P trong mảng nội, điều này thực hiện tại ** O (MNP) ** tốc độ, mà có thể bị tê liệt. – tadman
@tadman Xem câu trả lời cập nhật với giải pháp O (N). –
@tadman Mặc dù, tôi cho rằng nó thực sự là O (NP)? Tôi không nghĩ có gì nhanh hơn thế. Giả sử P là rất nhỏ mặc dù, nó không thực sự ảnh hưởng đến thời gian phức tạp. –