使用 pair/ipair 简化 lua 函数

Using pair/ipair to simplify a lua function

我有以下有效的代码:

function group1color()
    for _, roomid in ipairs(group1rooms) do
        if roomid == '1+' then
            Controls.room1background.Color = '#dba643'
        end
        if roomid == '2+' then
            Controls.room2background.Color = '#dba643'
        end
        if roomid == '3+' then
            Controls.room3background.Color = '#dba643'
        end
    end
end

但是,我需要将roomid if语句再复制5次,然后针对8个不同的房间组复制8次函数。我想弄清楚是否有办法使用 pairs 或 ipairs 来简化这个?我主要是在寻找有关如何简化函数迭代的建议。

您可以通过_G["varname"]

访问全局变量
function groupcolor()
   for N = 1, 8 do
      local groupNrooms = _G["group"..N.."rooms"]
      for _, roomid in ipairs(groupNrooms) do
         local M = roomid:match"^(%d+)%+$"
         if M then
            Controls["room"..M.."background"].Color = '#dba643'
         end
      end
   end
end