Я понимаю, что для того, чтобы подвести элементы массива в Ruby, можно использовать метод INJECT, т.е.Как суммировать свойства объектов в массиве в Ruby,
array = [1,2,3,4,5];
puts array.inject(0, &:+)
Но как я просуммировать свойства объектов внутри массива объектов, например?
Существует массив объектов, и каждый объект имеет свойство «наличными», например. Поэтому я хочу суммировать свои денежные остатки в одну общую сумму. Что-то вроде ...
array.cash.inject(0, &:+) # (but this doesn't work)
Я понимаю, что я мог бы сделать новый массив, состоящий только из имущества денежных средств и просуммировать, но я ищу более чистый метод, если это возможно!
Идеальное спасибо! –
Это происходит через 'array' дважды, хотя, возможно, не рекомендуется, если есть много элементов.Почему бы просто не использовать правильный блок для «инъекции»? Кроме того, 'reduce/inject' непосредственно принимает аргумент символа, не нужно' Символ # to_proc' :-) –
Обратите внимание, что вам не нужно отправлять блок, 'inject' знает, что делать с символом:' inject (0,: +) ' – tokland