如何在Ruby中对数组进行排序,其中第一个元素是字符串
问题是如何对具有以下结构的数组进行排序:如何在Ruby中对数组进行排序,其中第一个元素是字符串,ruby,arrays,sorting,Ruby,Arrays,Sorting,问题是如何对具有以下结构的数组进行排序: status = [["Wartend", :pending], ["Schufa Check", :schufa_check], ["Schufa Key existiert", :schufa_person_key_exists], ["LottoIdent", :lotto_ident], ["IBAN existiert", :iban_exists], ["E-Mail Bestätigung", :email_vali
status =
[["Wartend", :pending],
["Schufa Check", :schufa_check],
["Schufa Key existiert", :schufa_person_key_exists],
["LottoIdent", :lotto_ident],
["IBAN existiert", :iban_exists],
["E-Mail Bestätigung", :email_validation],
["SMS Bestätigung", :mobile_validation],
["Aktiv", :active],
["gesperrt", :locked],
["ausgeschlossen", :locked_out],
["werden gelöscht", :marked_for_deletion]]
结果应该是:
[["Aktiv", :active],
["ausgeschlossen", :locked_out],
["E-Mail Bestätigung", :email_validation],
["gesperrt", :locked],
["IBAN existiert", :iban_exists],
["LottoIdent", :lotto_ident],
["Schufa Check", :schufa_check],
["Schufa Key existiert", :schufa_person_key_exists],
["SMS Bestätigung", :mobile_validation],
["Wartend", :pending],
["werden gelöscht", :marked_for_deletion]]
一个常见错误是忘记字符串(位于
A[0]
位置的每个数组中)是大写或小写。当然,排序会产生如下结果:
"Aktiv",
"E-Mail Bestätigung",
"IBAN existiert",
"LottoIdent",
...,
"SMS Bestätigung",
"ausgeschlossen",
"gesperrt"
因此,解决方案是使用带有块的通用Ruby排序方法,并对位置a[0]
处的值进行降格:
status.sort{|x,y| x[0].downcase <=> y[0].downcase}
status.sort{| x,y | x[0]。downcase y[0]。downcase}
一个常见错误是忘记字符串(在A[0]
位置的每个数组中)是大写或小写。当然,排序会产生如下结果:
"Aktiv",
"E-Mail Bestätigung",
"IBAN existiert",
"LottoIdent",
...,
"SMS Bestätigung",
"ausgeschlossen",
"gesperrt"
因此,解决方案是使用带有块的通用Ruby排序方法,并对位置a[0]
处的值进行降格:
status.sort{|x,y| x[0].downcase <=> y[0].downcase}
status.sort{| x,y | x[0]。downcase y[0]。downcase}
或状态。按{x | x[0]排序。{downcase}
是否有其他标志可用于确定它是上升还是下降或状态。按{x | x[0]排序。{downcase}
是否有其他标志可用于确定它是上升还是下降