代码之家  ›  专栏  ›  技术社区  ›  Jexter Labo

如何在Lua中从循环表中删除键值

  •  0
  • Jexter Labo  · 技术社区  · 2 年前

    所以,我创建了一个表 A_table 我的目标是创造一套三只手 Hand 然后我想从表中删除最后两组,即 key 2 and 3

    A_table = {}
    
    for i = 1, 3 do
      local  Hand = {
                ['parts'] = {
                    type = 'arm',
                    left = 'up',
                    right = 'down',
                    collision = 'true'
                }
            }
        
        table.insert(A_table, Hand)
    end
    
    for k, v in pairs(A_table) do
        print(k, v['parts'].left)
    end
    

    输出:--要删除2和3

    1       up
    2       up
    3       up
    

    我尝试了以下方法,但没有成功。

    for k, v in pairs(A_table) do
        for i = #v, 2, -1 do
            A_table[i] = nil
        end
    end 
    
    1 回复  |  直到 2 年前
        1
  •  1
  •   koyaanisqatsi    2 年前

    就你而言。。。

    for i = #A_table, 2, -1 do
        table.remove(A_table)
    end
    
    1. 循环从最后一个关键点开始,在第2个关键点之后离开
    2. 桌子不带位置参数的remove()默认情况下删除最后一个键/值