test = [["movie5name","2014"],["movie2name","2016"],["movie3name","2016"],["movie3name","2017"]]
testNew = test.sort_by{|n| [-n[1],n[0]]}
我试图通过首先根据年份的降序排序然后根据电影名称的acesding顺序对数组进行排序。 但是,它显示未定义的方法错误,因为n:之前的负号(
答案 0 :(得分:3)
那是因为你试图让string
为负面,请尝试以下代码:
testNew = test.sort_by{|n| [-n[1].to_i,n[0]]}
假设n[1]
始终可以转换为数字。