I have a sparse lua table and I need to iterate over it. The Problem is, it seems that lua begins the iteration at 1, and terminates as soon as it finds a nil value. Here\
You must use pairs instead of ipairs.
tab={}
tab[1]='a'
tab[2]='b'
tab[5]='e'
for k, v in pairs(tab) do print(k, v) end
Will output (in any order):
1 a
2 b
5 e
ipairs iterates over sequential integer keys, starting at 1 and breaking on the first nil pair.
pairs iterates over all key-value pairs in the table. Note that this is not guaranteed to iterate in a specific order.