2 つのプロパティを評価してオブジェクト配列を並べ替えるカスタム ブロック メソッドを指定したいと考えています。しかし、何度も検索した結果、<=>
演算子のない例は見つかりませんでした。
a
比較したいb
:
if a.x less than b.x return -1
if a.x greater than b.x return 1
if a.x equals b.x, then compare by another property , like a.y vs b.y
これは私のコードであり、動作しません:
ar.sort! do |a,b|
if a.x < b.y return -1
elseif a.x > b.x return 1
else return a.y <=> b.y
end
このブロックは関数内にあり、関数return
を終了して戻り-1
ます。