[RAILS] [Jeder, Karte ...] Ich habe die Array-Verarbeitung heute Abend verglichen [Ruby]

Es gibt viele Methoden zum Manipulieren der Elemente eines Ruby-Arrays. Immerhin habe ich versucht zu vergleichen, welches sich verhält und welches am effizientesten ist.

Schnellreferenztabelle für Array-Operationen

Methode Rückgabewert Verhalten
each Array von Empfängern Durchlaufen Sie die Elemente des Arrays einzeln im Block
each_slice nil Durchlaufen Sie mehrere Einheiten von Array-Elementen innerhalb eines Blocks
each_with_index Array von Empfängern Durchlaufen Sie Array-Elemente und Indexnummern innerhalb eines Blocks
map Array geändert Ändern Sie die Elemente so, wie sie sich in einem Array befinden
select Array geändert Behalten Sie das Array bei und schränken Sie die Elemente ein, für die der bedingte Ausdruck wahr ist
reject Array geändert Behalten Sie das Array bei und beschränken Sie sich auf die Elemente, deren bedingter Ausdruck falsch ist
find Element Elementの中で、最初にヒットしたElementを取り出す

Iterative Verarbeitung

each Schleifenelemente im Singular


array = ["Apfel", "Orange", "Wassermelone", "Melone"]

array.each do |obj|
  p obj
end

Rückgabewert


Apfel
Orange
Wassermelone
Melone
=> ["Apfel", "Orange", "Wassermelone", "Melone"]

each_slice Schleife mehrere Elemente


array.each_slice(2) do |a|
  p a
  p a
end

Rückgabewert


["Apfel", "Orange"]
["Wassermelone", "Melone"]
=> nil

each_with_index Sie können den Index zusammen mit dem Element abrufen


array.each_with_index do |obj,index|
  p obj
  p index
end

Rückgabewert


"Apfel"
0
"Orange"
1
"Wassermelone"
2
"Melone"
3
=> ["Apfel", "Orange", "Wassermelone", "Melone"]

Ändern Sie direkt den Inhalt des Elements

map Optimieren Sie die Elemente und kehren Sie als Array zurück


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

array_new = array.map{ |i| i*2 }

Rückgabewert


[2, 4, 6, 8, 10]

select Gibt ein Array von Elementen zurück, für die der Rückgabewert des bedingten Ausdrucks wahr ist


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

array_new = array.select{ |i| i > 3 }

Rückgabewert


[4, 5]

reject Gibt ein Element als Array zurück, dessen Rückgabewert des bedingten Ausdrucks false ist


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

array_new = array.reject{ |i| i % 2 == 0 }

Rückgabewert


[1, 3, 5]

find Suchen und rufen Sie das erste Element ab, das im bedingten Ausdruck wahr ist


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

array_new = array.find{ |i| i > 3 }

Rückgabewert


4

Recommended Posts

[Jeder, Karte ...] Ich habe die Array-Verarbeitung heute Abend verglichen [Ruby]
Array / Liste / Karte
[Jeder, Karte ...] Ich habe die Array-Verarbeitung heute Abend verglichen [Ruby]
[Rubiy] Heute Abend habe ich versucht, die Schleifenverarbeitung zusammenzufassen [Zeiten, Pause ...]
Iterative Verarbeitung von Ruby mit jeder Methode (finde die Summe von 1 bis 10)
[Rubiy] Vereinfache jedes mit Map und Inject
Ich habe die interne Verarbeitung von Retrofit untersucht
Ich habe die Eigenschaften von Java und .NET verglichen
Ich habe die Anzahl der Taxis mit Ruby überprüft
Ich möchte den Wert in Ruby erhalten