У меня две петли, основная l oop и вспомогательная oop внутри основной l oop. Оба цикла заполняют одну и ту же таблицу (и подтаблицу). Но по какой-то причине sub-l oop сохраняет только последний добавленный элемент во вложенной таблице.
Например, основная группа 1 имеет подгруппы, сохраненные как 1-9:
printTable (data [1] [subItems] [1]) - возвращает error (index nil value)
printTable (data [1] [subItems] [9]) - выводит таблицу на консоль
Если я сломаю sub-l oop после одной итерации, тогда data [1] [subItems] [1] содержит данные
for i=startId, endId, 10 do
items = loadItems(i)
data[i] = {['items'] = items}
for x=i+1, i+10-1 do
subItems = loadItems(x)
print('adding items to sub-group: '..x..' for main group: '..i)
data[i]['subItems'] = {}
data[i]['subItems'][x] = {['items'] = subItems}
end
end
end
Так как я печатаю некоторую отладочную информацию внутри под-l oop , Я знаю, код выполняется. И я знаю, что loadItems (x) получает данные на каждой итерации, потому что, если я выгружаю loadItems (x) на консоль в sub-l oop, все будет на каждой итерации.
Что это волшебник dry?