Sorting table iterator May 14, 2016 04:27PM |
Registered: 8 years ago Posts: 659 |
for k,v in spairs(finds, function(t,a,c) return c < a end) do print(k,v) endIterating trough a list by cache_name in reverse order.
for k,v in spairs(finds, function(t,a,c) return t[c].cache_name < t[a].cache_name end) do Print(k,v) end
function spairs(t, order) -- collect the keys local keys = {} for k in Pairs(t) do keys[#keys+1] = k end -- if order function given, sort by it by passing the table and keys a, b, -- otherwise just sort the keys if order then TableSort(keys, function(a,b) return order(t, a, b) end) else TableSort(keys) end -- return the iterator function local j = 0 return function() j = j + 1 if keys[j] then return keys[j], t[keys[j]] end end end
Re: Sorting table iterator June 05, 2016 11:08PM |
Registered: 8 years ago Posts: 72 |
Re: Sorting table iterator April 26, 2020 10:32PM |
Registered: 8 years ago Posts: 24 |
Re: Sorting table iterator September 01, 2020 02:04PM |
Admin Registered: 8 years ago Posts: 814 |
Re: Sorting table iterator September 02, 2020 12:45AM |
Registered: 8 years ago Posts: 1,853 |
function spairs(t, order) -- collect the keys local keys = {} for k in pairs(t) do keys[#keys+1] = k end -- if order function given, sort by it by passing the table and keys a, b, -- otherwise just sort the keys if order then table.sort(keys, function(a,b) return order(t, a, b) end) else table.sort(keys) end -- return the iterator function local i = 0 return function() i = i + 1 if keys then return keys, t[keys] end end end --function spairs
Re: Sorting table iterator September 03, 2020 02:39PM |
Registered: 7 years ago Posts: 4,127 |