Entfernen habe ich eine Sammlung, die eine Klasse enthält wie:ein Element aus einer In-Memory-Sammlung
locations = Location.all
class Location < ActiveRecord::Base
end
Die Lage Klasse eine Eigenschaft hat: Code
I wan ein Element aus der Sammlung entfernen Wenn Code == "unbenutzt".
Wie viele verschiedene Möglichkeiten kann ich dies in Ruby tun?
ich derzeit dies tue:
locations = Location.all.select { |l| l.code != "unused" }
Dies funktioniert gut, aber frage mich, was andere Möglichkeiten, wie ich dies zu Lernzwecken nur tun könnten (wenn es große Leistungsvorteile in einer anderen Art und Weise, die gut wäre auch zu wissen,).
Update Bitte ignorieren Sie die Tatsache, dass ich meine Sammlung zunächst aus der Datenbank laden, das war nicht der Punkt. Ich möchte lernen, wie die Dinge zu entfernen, im Speicher nicht einfach, wo Klauseln :)
Von Codierstil Perspektive, sollten Sie vielleicht lieber 'ablehnen {| l | l.code == "unused"} 'over' selektiere {| l | l.code! = "unused"} (Bedingungen mit Negation induzieren mehr kognitive Belastung). Außerdem kann ich nicht einfach die Tatsache ignorieren, dass Sie eine einzelne Zeichenvariable "1" verwenden, von der bekannt ist, dass sie falsch gelesen wird als Nummer "l" (oder umgekehrt;) – TeWu
@TeWu Sie sind ein bisschen böse. –