将桌子分成9张

时间:2019-01-03 17:54:46

标签: lua lua-table

我想知道如何将我的表拆分为9的子表。

示例:

{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 }

代码应返回:

{ {1, 2, 3, 4, 5, 6, 7, 8, 9}, {10, 11, 12, 13, 14, 15, 16, 17, 18}, { 19, 20} }

您认为如何完成?

1 个答案:

答案 0 :(得分:3)

您的代码似乎过于复杂。任务是每9个元素创建一个子表。下面的代码可以做到这一点:

a={ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 }
b={}
j=0
k=9

for i=1,#a do
    if k==9 then j=j+1; b[j]={}; k=0 end
    k=k+1
    b[j][k]=a[i]
end

在这里,j跟踪创建的子表的数量,k跟踪添加到子表的元素的数量。当k变为9时,将创建一个新的子表。 k从9开始表示。