4 Stimmen

Rubin: Groß-/Kleinschreibung-unabhängiger Array-Vergleich

Ich habe gerade herausgefunden, dass dieser Vergleich tatsächlich Groß-/Kleinschreibung berücksichtigt Kennt jemand eine Möglichkeit, den gleichen Vergleich ohne Berücksichtigung der Groß-/Kleinschreibung durchzuführen?

CardReferral.all.map(&:email) - CardSignup.all.map(&:email)

9voto

Jo Liss Punkte 27127

Ich glaube nicht, dass es einen "direkten" Weg wie den Minus-Operator gibt, aber wenn es Sie nicht stört, alle Ergebnisse in Kleinbuchstaben zu erhalten, können Sie dies tun:

CardReferral.all.map(&:email).map(&:downcase) - CardSignup.all.map(&:email).map(&:downcase)

Andernfalls müssen Sie den Vergleich manuell durchführen, indem Sie find_all o reject :

signups = CardSignup.all.map(&:email).map(&:downcase)
referrals = CardReferral.all.map(&:email).reject { |e| signups.include?(e.downcase) }

Ich würde vorschlagen, dass das Lesen einer Referenz der Ruby-Standardtypen Ihnen dabei helfen könnte, einen Code wie diesen zu erstellen. In "Programming Ruby 1.9" sind zum Beispiel alle Methoden des Typs Enumerable Objekt wird ab Seite 487 erklärt ( find_all steht auf Seite 489).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X