Ich verwende Rails 4.2.7. Ich habe diese Funktion, die prägnante (Bändern) Strings in meinem ArrayWie kann ich meine Funktion nur auf Nicht-Null-Elemente anwenden?
data_cols = data_cols.collect{|x| x.strip || x }
jedoch, wenn eines der Elemente in dem Array trimmt ist gleich Null, das oben auseinander fällt. Wie kann ich das oben genannte ändern, so dass es nicht für Nullelemente gilt?
Ich bin froh, dass Sie auf die [sichere Navigation operator] bezeichnet (http://mitrev.net/ruby/2015/11/13/the-operator-in-ruby /). Ein paar Punkte: 1) 'col && col.strip || col 'kann zu 'col && col.strip' vereinfacht werden, 2)' [false] .map {| col | col.strip if col.responds_to? (: strip)} # => [nil] ', 3) Da in der Frage nach dem Entfernen von' nil' keine Erwähnung erfolgt, schlage ich vor, dass Sie den ersten Teil Ihrer Antwort auf die Ende und Streik "behalte alle Werte, aber". –
@CarySwoveland 1) Guter Fang; aktualisiert. 2) behoben. 3) Ich denke, dass es im breiteren Kontext dieser Art von Frage nützlich ist, und es bietet eine Gelegenheit, das allgemeine " .to_proc" Idiom in diesem Zusammenhang zu veranschaulichen. Prost! –
coreyward