Enumerable#inject și reduce în Ruby: Acumulare Avansată de Valori în Ruby

Sintaxă
collection.inject(initial) { |memo, item| ... }
collection.reduce(operator)

Metodele inject și reduce sunt sinonime și combină toate elementele unei colecții prin aplicarea unei operațiuni binare specificate printr-un bloc sau simbol de operator.

numere = [1, 2, 3, 4, 5]

# 1. Sumă rapidă folosind simbolul operatorului:
suma = numere.reduce(:+) # 15

# 2. Produs cu valoare inițială:
produs = numere.inject(1) { |acumulator, n| acumulator * n } # 120

# 3. Construirea unui Hash agregat pornind de la o listă:
cuvinte = ["mar", "para", "mar", "banana", "mar"]
frecvente = cuvinte.inject(Hash.new(0)) do |h, fruct|
  h[fruct] += 1
  h
end
# Rezultat: {"mar"=>3, "para"=>1, "banana"=>1}

Atenție la valoarea de retur: În interiorul blocului, ultima expresie evaluată devine noul acumulator pentru iterația următoare.

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Enumerable#inject și reduce în Ruby: Acumulare Avansată de Valori

Ai o nelămurire despre utilizarea comenzii Enumerable#inject și reduce în Ruby: Acumulare Avansată de Valori sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.