Tri*_*rip 4 ruby arrays ruby-on-rails
刚发现这个比较实际上是区分大小写的.任何人都知道一种不区分大小写的方法来完成同样的比较吗?
CardReferral.all.map(&:email) - CardSignup.all.map(&:email)
Run Code Online (Sandbox Code Playgroud)
我不认为有任何"直接"方式,如减号运算符,但如果你不介意以小写字母获得所有结果,你可以这样做:
CardReferral.all.map(&:email).map(&:downcase) - CardSignup.all.map(&:email).map(&:downcase)
Run Code Online (Sandbox Code Playgroud)
否则你将不得不使用find_all或手动进行比较reject:
signups = CardSignup.all.map(&:email).map(&:downcase)
referrals = CardReferral.all.map(&:email).reject { |e| signups.include?(e.downcase) }
Run Code Online (Sandbox Code Playgroud)
我建议阅读Ruby的标准类型的参考可能会帮助你提出这样的代码.例如,"Programming Ruby 1.9"具有Enumerable从第487页开始解释的对象的所有方法(见find_all第489页).
| 归档时间: |
|
| 查看次数: |
3500 次 |
| 最近记录: |