jjzjj

ruby - 从对象数组中获取包含特定值的数组的最 Rubyish 方式?

我有一组ruby​​对象,看起来像这样:[#,#,#]数组中的每个对象都有一个email属性。我想获取数组中ruby​​对象的所有电子邮件属性的新数组。执行代码后,我将得到一个如下所示的数组:["email@example.com","anotheremail@gmail.com",...]我是ruby​​的新手,想以最像ruby​​ish的方式来做这件事。我的问题是,在ruby​​中执行此操作的最佳方法是什么? 最佳答案 您可以使用map方法将block应用于数组的每个元素,返回一个包含每次调用结果的新数组:somearray.m

反转正则表达式的 Rubyish 方式

假设正则表达式来自当前上下文之外的调用代码,然后传递给当前项目之外实现的另一个调用:["1","2"].grep(/1/)#=>["1"]是否有一种简单的Rubyish方式可以在调用时实现以下行为?["1","2"].grep(/1/.negate)#=>["2"]此行为类似于将=~运算符切换为!~运算符。当然,可以使用#select或#reject,也可以打开或子类化Regexp。但我很好奇Ruby中是否已经有一种方法可以否定正则表达式以上述方式返回的匹配项。此外,我不关心是否false或nil或true或匹配的位置参与实现此效果。有一个theoreticalquestion这是相关