如何在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}
是否有其他标志可用于确定它是上升还是下降