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

时间:2014-06-20 17:29:25

标签: lua lua-table

我有一个由多行组成的表,每行都有可变数量的列。

如果我想在新行中添加数据,我只需要

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

现在我想做的是,如果我想添加到第1行(例如):

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

除了不起作用,我找不到解决方案。

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

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

  

- 表:{4} {[“d3”] = 154.04,},

而不是'd1','d2'和最后'd3'我只是'd3'。

2 个答案:

答案 0 :(得分:1)

代码

  

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

table[1]的值替换为右侧的表格

请改为尝试:

  

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

答案 1 :(得分:0)

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

#运算符仅计算整数键。所以#不会计算包含字符串键的任何表,例如table [p1],这是我的问题。 我使用以下函数解决了它:

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

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

我使用数字索引的问题是它使代码不可读,我不知道是什么。有了这个,我仍然可以使用字符串索引并计算它们。这是一种权衡。还有一个函数或#运算符。

干杯