如何自动将字符串添加到表格行的末尾

我有一个表格,由几行组成,每行的列数都不同。

如果我想要在新的一行中添加数据,我只需要这样做:

table[#table+1] = {['d1'] = data, ['d2'] = data, ... }

现在,如果我想要添加到第一行(例如):

table[1] = {['d' .. #columns+1] = data}

但是这并不起作用,我找不到解决方法。

我现在的问题是,当我的代码向已经存在的行添加数据时,它会覆盖现有的数据,这不是我想要的。

例如,这是表格的一行的当前结果:

-- Table: {4} { ["d3"]=154.04, },

而不是我想要的 'd1'、'd2',最后是 'd3'。

点赞
用户107090
用户107090

代码

table[1] = {['d' .. #columns] = data}

替换 table[1] 的值为右边的表。

请尝试这个:

table[1]['d' .. #columns] = data

2014-06-20 17:38:28
用户2649020
用户2649020

对于那些可能有同样问题的人,这是我找到的最接近的答案:

# 操作符仅计算整数键。因此,# 将不会计算包含字符串键的任何表格,例如 table [p1],这就是我的问题。我使用以下函数解决了这个问题:

function tlength(T)
  local count = 0
  for _ in pairs(T) do count = count + 1 end
  return count
end

现在我可以计算列/子列中的任意数量的项并将其添加。

我使用数字索引时遇到的问题是,它使代码难以阅读,我不知道哪个是哪个。通过这种方式,我仍然可以使用字符串索引并计数它们。这是一种权衡。一个额外的函数或 # 操作符。

干杯!

2014-06-21 15:54:52