Ism*_*hul 3 ruby arrays sorting multidimensional-array
我试图从多维数组中获取最长的字符串,但由于某种原因它不起作用.
这就是我所拥有的:
a =
["MAKKGKPRPDHRPPAHNPHYAHDPPPYSQQQPPLQQQNYAQQMNRQHARPRPSPPSEVSDCVKYSLFLYNCIFWVSMHSS"],
["MHHGGGGGNRQHARPRPSPPSEVSDCVKYSLFLYNCIFWVSMHSS"], ["MTYINLGVTRTGDLMIGRHRP"],
["MRIYNRVCFQTAGCYLQNLVTTSIQPARVWTY"], ["MAACGLGRVFSAFKVDEMD"],
["MPSGFVGKRSGFCQFCCSHI"], ["MTYSTAKEGAYPFRNFN"]]
p a.max_by{|v|v}[0] # => "MTYSTAKEGAYPFRNFN"
Run Code Online (Sandbox Code Playgroud)
有人可以让我知道我做错了什么吗?
=> a.flatten.max_by(&:size)
=> # "MAKKGKPRPDHRPPAHNPHYAHDPPPYSQQQPPLQQQNYAQQMHHGGGGGNRQHARPRPSPPSEVSDCVKYSLFLYNCIFWVSMHSS"
Run Code Online (Sandbox Code Playgroud)
a = [
["MAKKGKPRPDHRPPAHNPHYAHDPPPYSQQQPPLQQQNYAQQMHHGGGGGNRQHARPRPSPPSEVSDCVKYSLFLYNCIFWVSMHSS"],
["MHHGGGGGNRQHARPRPSPPSEVSDCVKYSLFLYNCIFWVSMHSS"],
["MTYINLGVTRTGDLMIGRHRP"],
["MRIYNRVCFQTAGCYLQNLVTTSIQPARVWTY"],
["MAACGLGRVFSAFKVDEMD"],
["MPSGFVGKRSGFCQFCCSHI"],
["MTYSTAKEGAYPFRNFN"]
]
p a.max_by { |v| v[0].size }[0]
Run Code Online (Sandbox Code Playgroud)
输出:
"MAKKGKPRPDHRPPAHNPHYAHDPPPYSQQQPPLQQQNYAQQMHHGGGGGNRQHARPRPSPPSEVSDCVKYSLFLYNCIFWVSMHSS"
Run Code Online (Sandbox Code Playgroud)
简单地指定v,对每个元素(单元素数组)进行比较.它们按字典顺序进行比较.
| 归档时间: |
|
| 查看次数: |
456 次 |
| 最近记录: |