mirror of
https://github.com/hkalexling/Mango.git
synced 2025-08-03 11:25:29 -04:00
Handle the case when two split arrays have different size in
`compare_alphanumerically`
This commit is contained in:
parent
50ce0e2b54
commit
c4ffb5cd59
27
src/util.cr
27
src/util.cr
@ -47,16 +47,21 @@ end
|
||||
|
||||
def compare_alphanumerically(c, d)
|
||||
is_c_bigger = c.size <=> d.size
|
||||
begin
|
||||
c.zip(d) do |a, b|
|
||||
if is_numeric(a) && is_numeric(b)
|
||||
compare = a.to_i <=> b.to_i
|
||||
return compare if compare != 0
|
||||
else
|
||||
compare = a <=> b
|
||||
return compare if compare != 0
|
||||
end
|
||||
end
|
||||
is_c_bigger
|
||||
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|
|
||||
return -1 if a.nil?
|
||||
return 1 if b.nil?
|
||||
if is_numeric(a) && is_numeric(b)
|
||||
compare = a.to_i <=> b.to_i
|
||||
return compare if compare != 0
|
||||
else
|
||||
compare = a <=> b
|
||||
return compare if compare != 0
|
||||
end
|
||||
end
|
||||
is_c_bigger
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user