2016-06-16 5 views
-3

verschoben, um Code-Überprüfung nach Kommentaren verschoben.verschoben, um Code-Überprüfung pro Kommentare

+0

Ihr Code wird nicht analysiert; Ruby benötigt 'end', um Blöcke wie Funktionsdefinitionen zu terminieren. Schauen Sie sich jedoch die Array # Auswahl an. –

+0

Bitte lesen Sie "[fragen]". Stellen Sie sicher, dass Ihr Beispielcode die Anforderungen erfüllt und das, was Sie wollen, syntaktisch korrekt ist. Sehen Sie sich dann [codereview.se] an und prüfen Sie, ob das besser zu Ihrer Frage passt. Wie es ist, erfüllt es nicht die Anforderungen, noch ist es syntaktisch korrekt und es wird nicht tun, was Sie wollen. –

+0

Danke @ChrisHeald – throwaway0524

Antwort

0

Anstatt explizite Iteration tun, ist die beste Art und Weise Array#select somit wahrscheinlich:

even_numbers = numbers.select { |n| n.even? } 

dem das Block auf jedes Element in dem Array gegebenen Lauf numbers und ein Array erzeugen alle Elemente enthalten, für die der Block zurückgegeben wahr.

+0

Vielen Dank für den Vorschlag – throwaway0524

0

oder eine alternative Lösung nach der Konvention des Problems:

def get_even_numbers(array) 
     even_num = [] 
     array.each do |n| 
      even_num << n if n.even?  
     end 
    even_num 
end 

und natürlich für die select-Methode geht immer bevorzugt.

+0

Danke für Ihre Hilfe. Ich sehe, wo mein Code verbessert werden muss. – throwaway0524

Verwandte Themen