mirror of
https://github.com/hkalexling/Mango.git
synced 2026-05-01 00:00:55 -04:00
Handle the case when two split arrays have different size in
`compare_alphanumerically`
This commit is contained in:
+7
-2
@@ -47,8 +47,14 @@ end
|
|||||||
|
|
||||||
def compare_alphanumerically(c, d)
|
def compare_alphanumerically(c, d)
|
||||||
is_c_bigger = c.size <=> d.size
|
is_c_bigger = c.size <=> d.size
|
||||||
begin
|
if c.size > d.size
|
||||||
|
d += [nil] * (c.size - d.size)
|
||||||
|
elsif c.size < d.size
|
||||||
|
c += [nil] * (d.size - c.size)
|
||||||
|
end
|
||||||
c.zip(d) do |a, b|
|
c.zip(d) do |a, b|
|
||||||
|
return -1 if a.nil?
|
||||||
|
return 1 if b.nil?
|
||||||
if is_numeric(a) && is_numeric(b)
|
if is_numeric(a) && is_numeric(b)
|
||||||
compare = a.to_i <=> b.to_i
|
compare = a.to_i <=> b.to_i
|
||||||
return compare if compare != 0
|
return compare if compare != 0
|
||||||
@@ -59,4 +65,3 @@ def compare_alphanumerically(c, d)
|
|||||||
end
|
end
|
||||||
is_c_bigger
|
is_c_bigger
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
|||||||
Reference in New Issue
Block a user