Tôi hiểu rằng để tổng hợp các phần tử mảng trong Ruby ai có thể sử dụng phương pháp tiêm, tức làLàm thế nào để tổng hợp các thuộc tính của các đối tượng trong một mảng trong Ruby
array = [1,2,3,4,5];
puts array.inject(0, &:+)
Nhưng làm thế nào để tôi tổng hợp các thuộc tính của đối tượng trong một mảng đối tượng ví dụ như?
Có một mảng đối tượng và mỗi đối tượng có thuộc tính "tiền mặt" chẳng hạn. Vì vậy, tôi muốn tổng số dư tiền mặt của họ thành một tổng số. Một cái gì đó như ...
array.cash.inject(0, &:+) # (but this doesn't work)
Tôi nhận ra rằng tôi có thể tạo một mảng mới chỉ gồm tiền mặt tài sản và tổng số tiền này, nhưng tôi đang tìm một phương pháp rõ ràng hơn nếu có thể!
Perfect cảm ơn! –
Điều này vượt qua 'mảng' hai lần mặc dù, có thể không được khuyến khích nếu có nhiều yếu tố.Tại sao không chỉ sử dụng một khối thích hợp cho 'inject'? Ngoài ra 'reduce/inject' trực tiếp nhận một đối số biểu tượng, không cần' Symbol # to_proc' :-) –
lưu ý rằng bạn không cần phải gửi một khối, 'inject' biết phải làm gì với một biểu tượng:' inject (0,: +) ' – tokland