Ruby数组按变量中的值排序
我想按变量中的键对Ruby数组进行排序,但我不知道如何排序 处境Ruby数组按变量中的值排序,ruby,Ruby,我想按变量中的键对Ruby数组进行排序,但我不知道如何排序 处境 my_arr.sort_by {|record| [record.year]} 将按记录的年份排序。但我想按作者、标签等进行排序,这种排序类型存储在一个变量中,就像字符串一样。所以我需要像这样评估过滤器 my_arr.sort_by {|record| [record."something_in_the_var"]} 当然,我有固定的过滤器。但仍在思考如何正确地做到这一点 感谢您提供的提示您可以使用 sort_by_this
my_arr.sort_by {|record| [record.year]}
将按记录的年份排序。但我想按作者、标签等进行排序,这种排序类型存储在一个变量中,就像字符串一样。所以我需要像这样评估过滤器
my_arr.sort_by {|record| [record."something_in_the_var"]}
当然,我有固定的过滤器。但仍在思考如何正确地做到这一点
感谢您提供的提示您可以使用
sort_by_this = "label"
my_arr.sort_by {|record| [record[sort_by_this]]}
你可以用像
sort_by_this = "label"
my_arr.sort_by {|record| [record[sort_by_this]]}
这就是
send
的作用
str = "label"
arr.sort_by{|rec| rec.send(str) }
是在BasicObject上定义的,所以每个对象都有它。这就是
send
的作用
str = "label"
arr.sort_by{|rec| rec.send(str) }
是在BasicObject上定义的,所以每个对象都有它。我尝试了这个,得到了
NoMethodError:undefined方法
[]。`:(我尝试了这个,得到了NoMethodError:undefined方法
[]`:(