Script-Tip: Arrays

In unserem heutigen Script-Tip wollen wir euch zeigen wie man Arrays nach zufälliger Reichenfolge mischt, das Element mit dem größten/kleinsten Wert incl Index raussucht und den Durchschnittswert aller Elemente herausfindet.

Als erstes ein Beispiel wie man die Elemente nach zufälliger Reichenfolge mischen kann:

[1,2,3,4,5,6,7,8,9].shuffle
# => [3, 2, 5, 7, 4, 6, 1, 9, 8]

# Bitte beachtet, dass dies erst ab Ruby Version 1.8.7 unterstützt wird.
# Falls ihr noch mit einer älteren Version arbeitet/arbeiten müsst,
# könnt ihr auch auf andere Weise eure Arrays "mischen"

[1,2,3,4,5,6,7,8,9].sort_by{ rand }
# => [4, 7, 9, 6, 1, 5, 3, 8, 2]

Nun ein Beispiel wie ihr den größten/kleinsten Wert in einem Array inclusive dem Index herausfinden könnt:

# Ruby bringt bereits alles mit um die gesuchten Werte
# zu ermitteln: min und max

# Den größten Wert incl. Index finden...
[7,5,10,9,6,8].each_with_index.max
# => [10, 2]

# Den kleinsten Wert incl. Index finden...
[7,5,10,9,6,8].each_with_index.min
# => [5, 1]

Als letzter Arry-Script-Tip noch ein paar Beispiele um den Durchschnittswert eines gesamten Arrays herauszufinden:

arr = [9,8,5,2,8,7]
arr.inject(:+).to_f / arr.size  # => 6.5

# oder
arr.instance_eval{inject(&:+).to_f / length}

# oder
arr.inject{ |r, x| r + x }.to_f / arr.size

# oder
arr.inject(0.0){ |r, x| r + x } / arr.size

# oder
class Array
  def gesamt
    inject(0.0) { |erg, el| erg + el }
  end

  def durchschnitt
    gesamt / size
  end
end

arr.durchschnitt

Eingestellt am 04.12.2009 um 08:00

Kategorie: Tutorials

Speichern / Merken / Weitersagen:
  • Print
  • PDF
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • DZone
  • email
  • LinkedIn
  • Live
  • MisterWong.DE
  • MisterWong
  • MySpace
  • Netvibes
  • Reddit
  • Technorati
  • Tumblr
  • Webnews.de
  • Yahoo! Bookmarks
  • Yigg
  • Slashdot
  • Twitter
  • Twitthis

Kommentare für diesen Artikel wurden geschlossen.