【问题标题】:Ruby array sort by multiple attributesRuby数组按多个属性排序
【发布时间】:2015-02-28 14:03:08
【问题描述】:
test = [["movie5name","2014"],["movie2name","2016"],["movie3name","2016"],["movie3name","2017"]]
testNew = test.sort_by{|n| [-n[1],n[0]]}

我试图通过首先根据年份的降序排序然后根据电影名称的升序排序来对上述数组进行排序。 但是,它显示未定义的方法错误,因为 n 之前的负号:(

【问题讨论】:

    标签: ruby arrays sorting


    【解决方案1】:

    那是因为您试图将string 设为否定,请尝试以下代码:

    testNew = test.sort_by{|n| [-n[1].to_i,n[0]]}
    

    假设n[1] 始终可以转换为数字。

    【讨论】:

    • @agodadalah 没问题,我很高兴。 :)
    猜你喜欢
    • 1970-01-01
    • 2016-08-20
    • 2011-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-24
    • 1970-01-01
    相关资源
    最近更新 更多