Hier möchte ich mit dem jeweils ersten und letzten Element etwas anderes machen, wie soll ich das erreichen? Sicherlich kann ich eine Schleifenvariable i verwenden und verfolgen, ob i==0
oder [email protected]
, aber ist das nicht zu dumm?
Sie können each_with_index
verwenden und dann den Index verwenden, um das erste und das letzte Element zu identifizieren. Zum Beispiel:
Wenn Sie es vorziehen, können Sie auch die 'Mitte' des Arrays wie folgt trennen:
%Vor%Bei beiden Methoden müssen Sie auf das gewünschte Verhalten achten, wenn nur ein oder zwei Elemente in der Liste vorhanden sind.
Ein ziemlich üblicher Ansatz ist der folgende (wenn es im Array keine Duplikate gibt).
%Vor%Wenn Sie vermuten, dass das Array Duplikate enthält (oder wenn Sie diese Methode bevorzugen), nehmen Sie die ersten und letzten Elemente aus dem Array und bearbeiten Sie sie außerhalb des Blocks. Wenn Sie diese Methode verwenden, sollten Sie auch den Code, der für jede Instanz gilt, zu einer Funktion extrahieren, damit Sie sie nicht wiederholen müssen:
%Vor%Tags und Links ruby ruby-on-rails