Lua 嵌套for循环不能正常工作

Lua 嵌套for循环不能正常工作,lua,Lua,我的代码将两个表的条目相互比较,并将具有相同值的条目放入第三个表中: for i = 1, #hand do for j = i+1, #hand do if( hand[i].number == hand[j].number ) then if not done[i] then done[i] = true; table.insert(cards, hand[i]);

我的代码将两个表的条目相互比较,并将具有相同值的条目放入第三个表中:

for i = 1, #hand do
    for j = i+1, #hand do
        if( hand[i].number == hand[j].number ) then
            if not done[i] then
                done[i] = true;
                table.insert(cards, hand[i]);
            end
            if not done[j] then
                done[j] = true;
                table.insert(cards, hand[j]);
            end
        end
    end
end
我遇到的问题是,它将添加至少一个不同的条目。我检查了指纹,我注意到至少在一个例子中,它添加的额外条目是一个单独的倍数。也就是说,如果检查的值是6,6,10,10,我希望前两个条目插入到第三个表中,而不是最后两个。如何设置此代码以防止将来发生这种情况?谢谢


EDIT:done是在for循环外部创建的本地表。此代码的目的是每次只在表“hand”中查找最低倍数,其中“hand”按从低到高的数字排序。

10、10与6、6的区别是什么?感谢您的回复。对于这个特殊的代码,我只想找出最低的倍数。这是问题的关键信息,你不认为吗?;)。。。
hand
是按
number
s排序的吗?是的,
hand
是按
number
从低到高排序的。你应该把它添加到问题中,10,10与6,6有什么不同?谢谢你的回答。对于这个特殊的代码,我只想找出最低的倍数。这是问题的关键信息,你不认为吗?;)。。。
hand
是按
number
s排序的吗?是的,
hand
是按
number
从低到高排序的。您应该将其添加到问题中,谢谢!你帮了我大忙,多谢了!你帮了大忙
for i = 1, #hand - 1 do
  if hand[i].number == hand[i+1].number then
     local j = i
     while hand[i].number == hand[j].number do
        if not done[j] then
           done[j] = true
           table.insert(cards, hand[j])
        end
        j = j + 1
     end
     break
  end
end