entiendo que con el fin de resumir los elementos de matriz en Ruby se puede utilizar el método de inyección, es decirCómo sumar propiedades de los objetos dentro de una matriz en Ruby
array = [1,2,3,4,5];
puts array.inject(0, &:+)
Pero ¿cómo resumir las propiedades de los objetos dentro de una matriz de objetos, por ejemplo?
Hay una variedad de objetos y cada objeto tiene una propiedad "efectivo", por ejemplo. Entonces quiero sumar sus saldos de efectivo en un total. Algo así como ...
array.cash.inject(0, &:+) # (but this doesn't work)
Soy consciente de que probablemente podría hacer una nueva matriz compuesta sólo por el dinero en efectivo propiedad y resumir esto, pero estoy buscando un método más limpio si es posible!
perfecto gracias! –
Esto pasa por 'array' dos veces, lo que puede no ser aconsejable si hay muchos elementos.¿Por qué no usar un bloque apropiado para 'inyectar'? También 'reduce/inyectar' directamente toma un argumento de símbolo, no es necesario' Symbol # to_proc' :-) –
tenga en cuenta que no necesita enviar un bloque, 'inject' sabe qué hacer con un símbolo:' inject (0,: +) ' – tokland