Lua:table.remove不适用于2D数组

时间:2018-05-06 00:12:44

标签: arrays loops multidimensional-array lua

t = { 
  { 7, "123" }, 
  { 8, "234" }, 
  { 9, "345" }
}

t = table.remove(t, 1) -- This thing brokes everything, but should delete first group

for k, v in ipairs(t) do
  print(k, v[1], v[2])
end

这件事只是讨厌我,我和它一起战斗了4个小时并且没有从死点开始。尝试了几个不同的循环,不同的字母位置(v[1] -> k[1]等),没有任何帮助。

1 个答案:

答案 0 :(得分:3)

table.remove返回已删除的元素,而不是更新的表。只是不要指定t = table.remove(t, 1),而是丢弃返回值,即没有任何作业的裸table.remove(t, 1)

另见the manual

  

table.remove(table [,pos])

     

从表中移除位置pos处的元素,如果需要,向下移动其他元素以关闭空格。返回已删除元素的值。 pos的默认值为n,其中n是表的长度,因此调用table.remove(t)会删除表t的最后一个元素。

t = { 
  { 7, "123" }, 
  { 8, "234" }, 
  { 9, "345" }
}

table.remove(t, 1)

for k, v in pairs(t) do
  print(k, v[1], v[2])
end