Lua比较多表值

大家好,我有一个表格如下

list[i].font_name

其中i是未定义的数字,我想遍历表格并比较是否有相同的字符串。然后更改字符串

像这样

if list[1].font_name == list[2].font_name then
  list[2].font_name = list[2].font_name..'2'
end

可能会有多个匹配项,如

list[1].font_name
list[2].font_name
list[3].font_name

谢谢大家在Web上回答问题的时间:)圣诞快乐

点赞
用户3574628
用户3574628

使用哈希表来统计每个字体名称的出现次数,并循环遍历list。这个方法可以起作用,因为如果两个值比较相等(没有元方法),它们被认为是相同的键。

-- 这将跟踪重复。
local counter = {}

for i,v in ipairs(list) do
  local font = v.font_name

  --增加此字体的计数。
  local count =(counter [font]或0)+ 1
  计数器 [字体] = 计数

  if count> 1 then
    v.font_name = font .. count
  end
end
2020-12-25 14:09:47