lua中使用不同频率从表格中读取数据的两个循环

我正在构建一个循环,应该使用不同的频率来切换到下一个值。一个示例:

local color = {"蓝色", "绿色", "红色"}
local group = {1, 2, 3}

for i=1.3 do
  cmd(string.format('group %i ; store color %q ; clearall', group[i], color[j]))
end

这应该会产生以下结果:

Group 1 Blue,
Group 1 Green,
Group 1 Red,
Group 2 Blue.......

我无法得到循环中的循环,因为我不能让表格组在2个周期内仅上移一次。而且,使用双重值或两次使用 [i] 似乎没有起作用。

希望你能帮助我。

点赞
用户335858
用户335858

运行循环9次(这是你所做组合的数量),并使用math.floor来计算索引:

local color = {"Blue", "Green", "Red"}
local group = {1, 2, 3}
for i=0, #color*#color-1 do
    local g = math.floor(i/3)
    local c = i-3*g
    print(string.format('group %i ; store color %q ; clearall', group[g+1], color[c+1]))
end

演示。

2018-05-23 12:58:40
用户8425022
用户8425022

简化版

for i,v in pairs(group) do
    for k,c in pairs(color) do
        print("Group " .. v .. " " .. c)
    end
end

这段代码很简单,它同时遍历了 group 数组和 color 数组并按顺序打印出每个组和颜色的值。每当遍历到 group 数组中的一个值时,就会遍历 color 数组中的所有值。在 Lua 中,生成新字符串的方法很简单,不需要使用字符串库 :)

2018-05-25 07:13:56
用户9866482
用户9866482

另一种考虑到 ' '" " 之间的区别的方法:

for i=1, #color do
  for _, v in pairs(color) do
      print('group '..i..' ; store color "'..v..'" ; clearall')
  end
end
2018-05-30 03:32:03